Existem algumas maneiras simples de usar apenas sql.
Defina sua primeira consulta como uma tabela temporária, com união de todos, filtre a segunda consulta com a contagem da tabela temporária.
with temp as (select * from t1 where 1=0)
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
Esta consulta retornará os registros da segunda tabela.
with temp as (select * from t1 )
select * from temp
union all
select * from t2 where (select count(*) from temp) =0
E se a consulta temporária tiver resultado, retorne apenas a consulta temporária.
Você pode testar com fiddle sql aqui .