Det borde vara, om alls:
SELECT ...
CASE
WHEN ISDATE(ColumnName) = 1 THEN CONVERT(datetime, ColumnName, 103)
ELSE NULL
END
....
men du använder inte ISDATE WITH CONVERT, eftersom det inte finns något uttryck som
ISDATE(CONVERT(varchar,ColumnName,112))
utan den kapslade konverteringen beror returvärdet på saker som språkinställningar, därför är det ett icke-deterministiskt beteende. Utan "extern" kunskap är det inte möjligt att förutsäga resultatet man får, baserat enbart på input.