Опасявам се, че много малко опции.
Винаги трябва да докоснете таблицата два пъти, независимо дали COUNT, EXISTS преди, EXISTs в UNION, TOP клауза и т.н.
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)
Решение EXISTS е по-добро от COUNT, защото ще спре, когато намери ред. COUNT ще премине през всички редове, за да ги преброи действително