Hide post title when single post with specific category

Instead of

!is_category('campaign-post')

I think it’s

!in_category('campaign-post')

is_category() is used within Archives pages, when it’s in WP Query. Like your viewing a category archive page, and you’re asking: is this the category queried.

in_category() (which uses has_category() which then uses has_term() which then uses is_object_in_term()) relates to single posts, asking: does this post have this term.