Creating a table with a nullable IDENTITY column and defining the primary key at creation time works.
The database quietly interprets the column as NOT NULL for the purposes of the primary key, even though it's technically defined as nullable (i.e., not constrained using NOT NULL).
The database engine enforces the nullability at the schema level due to which this contradictory error shows up.
As of today there is no direct fix, maybe we can add this as enhancement but not sure its going to fix anytime soon as this will get tricky and dirty.
The best approach is dropping the table and recreating it with required constraints during creation ( if possible ).