It's useful because it's a generic design pattern not because of the mathematics behind it (of which virtually nothing is actually used, at least in everyday programming).
Yes, I definitely mentioned mathematicians, because they were the ones who showed us the problem solving methods, the modeling/design method.
I'm definitely agreeing that one uses practically none of the category theory in programming. But let's say that we can be influenced by the design of category theory, and get some theorems for free because of it.
why wouldn't it be useful in programming?