Другой подход - просто объединить два случая:
SELECT id, hybrid_col
FROM T2
WHERE hybrid_col+0!=hybrid_col
UNION
SELECT T2.id,t1.name
FROM T2 INNER JOIN T1 ON T2.hybrid_col=T1.id;
Нет необходимости проверять, является ли hybrid_col числовым, если оно совпадает с T1.ID. Если T1.ID всегда числовой, нечисловые значения будут исключены из объединения.
РЕДАКТИРОВАТЬ: Чтобы отсортировать их, инкапсулировать результат и сортировать это:
SELECT ID, VALUE
FROM
(
SELECT id as "ID", hybrid_col as "Value"
FROM T2
WHERE hybrid_col+0!=hybrid_col
UNION
SELECT T2.id as "ID",t1.name as "Value"
FROM T2 INNER JOIN T1 ON T2.hybrid_col=T1.id
) Q
ORDER BY ID;
Существуют и другие способы, такие как передача результата во временную таблицу и запрос к нему, но приведенный выше, вероятно, самый простой подход с одним запросом.