Hi Pavel, see if any of these examples are useful for you:
Clear[f];
a := {f[a_] := 1};
f[HoldPattern[_]] := 0;
f[_Real]
a;
f[_Real]
Clear[f];
f[a_] := a /. x_ /; x === pat -> 0;
f[pat]
f[3]
f[1]
Clear[f];
f[a_: 10] := a;
f[]
f[2]
f[3]
Clear[f];
f[a_] := a /. {pat -> 0, _ -> 1};
f[pat]
f[2]
f[3]
Clear[f];
f[a_] := If[a \[Element] NegativeIntegers, 0, a];
f[2]
f[-2]
f[2.37]