Deve ser, se for:
SELECT ...
CASE
WHEN ISDATE(ColumnName) = 1 THEN CONVERT(datetime, ColumnName, 103)
ELSE NULL
END
....
mas você não está usando ISDATE WITH CONVERT, já que não existe uma expressão como
ISDATE(CONVERT(varchar,ColumnName,112))
sem a conversão aninhada, o valor de retorno depende de coisas como configurações de idioma, portanto, é um comportamento não determinístico. Sem conhecimento "externo", não é possível prever o resultado que se está obtendo, com base apenas na entrada.