Väldigt få alternativ är jag rädd.
Du måste alltid röra tabellen två gånger, oavsett om COUNT, FINNS före, FINNS i UNION, TOP-sats 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)
En FINNS lösning är bättre än COUNT eftersom den kommer att sluta när den hittar en rad. COUNT kommer att gå igenom alla rader för att faktiskt räkna dem