Muito poucas opções, eu tenho medo.
Você sempre tem que tocar na mesa duas vezes, seja COUNT, EXISTS antes, EXISTs em UNION, cláusula TOP etc.
select
id, category
from mytable
where category = @category
union all --edit, of course it's quicker
select
0, ''
where NOT EXISTS (SELECT * FROM mytable where category = @category)
Uma solução EXISTS é melhor que COUNT porque ela irá parar quando encontrar uma linha. COUNT percorrerá todas as linhas para realmente contá-las