Maybe something like this:
Where
CASE WHEN Table.CategoryID = 3 THEN 1 ELSE 0 END +
CASE WHEN Table.Age < 30 THEN 1 ELSE 0 END -- + more CASEs for each condition
>=
CASE WHEN @AndParam = 1 THEN 2 ELSE 1 END
--For more conditions, change 2 above to however many conditions there are
You basically make each condition give you a 1 or 0, and then add all of these up - then you do a final check, depending on @AndParam
on whether you hit the total number of conditions or just at least 1.