I don’t know Symbolics, so please forgive me if this isn’t right, but I would guess that you can have the type of the argument be Union{Num, Const} or whatever type 1 is in the context of Symbolics.
You are overconstraining your function arguments, and there is no need for the return-type declaration either. If you want to declare argument types for dispatch or clarity, you can declare your function as f(a::Number, b::Number), for example, since both Int and Num are subtypes of Number. But it is perfectly fine to leave out the argument types entirely.
(Such type declarations typically do nothing for performance in Julia, contrary to popular misconception.)