I've confirmed this with two geodatabases so far.
Steps.
Create backup of 9.3.1 database from SQL 2008 R2
Restore Backup of 9.3.1 into new SQL 2012 database
Connect to new database in ArcCatalog and upgrade the geodatabase
When I view the features in ArcCatalog I can see the Shape field is saying it's a geometry field, when I look at the table itself in SQL the Shape field is still an INT field. I am unable to create any Query layers and have them act like a Query Layer using any of these features.
If I create a new geodatabase, and copy the features into it, the field does convert to geometry so it's not the data. the Upgrade Geodatabase button apparently is not actually upgrading anything. Is this a known issue, or something special I ran into?
Steps.
Create backup of 9.3.1 database from SQL 2008 R2
Restore Backup of 9.3.1 into new SQL 2012 database
Connect to new database in ArcCatalog and upgrade the geodatabase
When I view the features in ArcCatalog I can see the Shape field is saying it's a geometry field, when I look at the table itself in SQL the Shape field is still an INT field. I am unable to create any Query layers and have them act like a Query Layer using any of these features.
If I create a new geodatabase, and copy the features into it, the field does convert to geometry so it's not the data. the Upgrade Geodatabase button apparently is not actually upgrading anything. Is this a known issue, or something special I ran into?
The default storage type changed to GEOMETRY starting from 10.1, so you may not be observing the same behaviour in the new geodatabase.
I assume, that the storage type being used in your 9.3.1 sde gdb was SDEBinary. Even when you upgraded the sde gdb to 10.2.1, it remained as SDEBinary(as expected and as designed).