Powinno być, jeśli w ogóle:
SELECT ...
CASE
WHEN ISDATE(ColumnName) = 1 THEN CONVERT(datetime, ColumnName, 103)
ELSE NULL
END
....
ale nie używasz funkcji ISDATE WITH CONVERT, ponieważ nie ma wyrażenia takiego jak
ISDATE(CONVERT(varchar,ColumnName,112))
bez konwertowania zagnieżdżonego wartość zwracana jest zależna od takich rzeczy, jak ustawienia języka, stąd jest to zachowanie niedeterministyczne. Bez wiedzy „zewnętrznej” nie jest możliwe przewidzenie wyniku, jaki otrzymujemy, na podstawie samych danych wejściowych.