Não, o SQL Server é inteligente e sabe que está sendo usado para um EXISTS e não retorna NO DATA ao sistema.
Quoth Microsoft:http://technet.microsoft.com/en-us/library/ms189259.aspx?ppud=4
A lista de seleção de uma subconsulta introduzida por EXISTS quase sempre consiste em um asterisco (*). Não há motivo para listar nomes de colunas porque você está apenas testando se existem linhas que atendem às condições especificadas na subconsulta.
Para verificar a si mesmo, tente executar o seguinte:
SELECT whatever
FROM yourtable
WHERE EXISTS( SELECT 1/0
FROM someothertable
WHERE a_valid_clause )
Se estivesse realmente fazendo algo com a lista SELECT, lançaria um erro div por zero. Não.
EDIT:Observe que o SQL Standard fala sobre isso.
Padrão ANSI SQL 1992, página 191 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
3) Caso:
a) Se o<select list>
"*" está simplesmente contido em um<subquery>
que está imediatamente contido em um<exists predicate>
, então o<select list>
é equivalente a um<value expression>
que é um<literal>
arbitrário .