your macro shouldn’t cast cat form when you are already in cat form, cause that’s what the exclamation mark does ("/cast !Cat Form" means use Cat form if it’s not already acrive)
However, the exclamation mark in macros is currently bugged in the pre-patch, there have been a few posts about it on other sites. It is unknown if or when blizzard will fix it.
To circumvent it you can instead use
/cast [noform:3] Cat Form
which should be working despite the bug. Whenever the bug is fixed, your original macro should work as well.