I would have had slightly more troubles, if the INT data type would've been inserted first.
Because in the first try I thought that the numeric data type would set the returned data type which is definitely wrong.
Thank you for the question!
Statement, when int is first
SELECT COALESCE(Col2, Col1) AS 'FirstNotNull' FROM dbo.T_TEST
will have the same output(I mean type:), not numbers), because returned data type is defined expression with the highest data type precedence.