Sehr wenige Optionen, fürchte ich.
Sie müssen die Tabelle immer zweimal berühren, egal ob COUNT, EXISTS before, EXISTs in UNION, TOP-Klausel 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)
Eine EXISTS-Lösung ist besser als COUNT, weil sie aufhört, wenn sie eine Zeile findet. COUNT durchläuft alle Zeilen, um sie tatsächlich zu zählen