Det burde være, hvis overhovedet:
SELECT ...
CASE
WHEN ISDATE(ColumnName) = 1 THEN CONVERT(datetime, ColumnName, 103)
ELSE NULL
END
....
men du bruger ikke ISDATE MED KONVERT, da der ikke er noget udtryk som
ISDATE(CONVERT(varchar,ColumnName,112))
uden den indlejrede konverter er returværdien afhængig af ting som sprogindstillinger, derfor er det ikke-deterministisk adfærd. Uden "ekstern" viden er det ikke muligt at forudsige det resultat, man får, baseret på input alene.