Obávám se, že velmi málo možností.
Vždy se musíte dotknout stolu dvakrát, ať už POČET, EXISTUJE dříve, EXISTUJE v UNION, klauzule TOP atd
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 řešení je lepší než COUNT, protože se zastaví, když najde řádek. COUNT projde všechny řádky, aby je skutečně spočítal