While the categorical imperative is kind of okay at justifying abstract prohibitions, most concrete actions don't universalize very well in the presence of people who are not precisely you; just take a look at any "falsehoods programmers believe" list. Some of these are occasionally useful to. Even something as simple as "sit on toilets" is hard to naively universalize unconditionally, and once you've filled in the blanks you've done no less work than if you hadn't started from the categorical imperative in the first place.
And then there's the "lying to a murderer"-type problem, where the apparent implication of the categorical imperative seems to be flat-out wrong: https://en.wikipedia.org/wiki/Categorical_imperative#Lying_t...