Você tentou executar a consulta original com o TOP 1? provavelmente será tão lento.
Às vezes, quando o otimizador pensa que algo é muito provável e retornará um vasto conjunto de dados com pouco esforço (ou seja, quase todos os registros serão retornados), ele escolhe principalmente junções de loop porque precisa apenas obter o primeiro e um A junção de loop é boa para obter apenas alguns registros. Quando isso não é verdade, leva uma eternidade e um dia para obter resultados.
No seu caso, parece muito raro, então essa escolha dói muito. Tente fazer algo como
SELECT @count = COUNT(*) FROM ...
e, em seguida, verificar se essa contagem é diferente de zero.