Вам нужно сделать это:
SELECT ( CASE WHEN (@FQTROQ is not null and @FQTROQ <> '')
THEN ( @FQTROQ )
ELSE ( CAST(@FQNUTQ AS VARCHAR(30))) END ) AS Numero_Troquel
поскольку возвращаемое значение из столбца должно совпадать, SQL Server попытается преобразовать ваш VARCHAR в NUMERIC, а не наоборот, чего вы, вероятно, хотите.
Что за соглашение об именах, кстати?