The concept of design patterns originally came from architecture (of buildings, not software). It was an observation that many buildings that serve a similar purpose often have similar features, even if the exact design is very different. And the idea that it is valuable to discover and document those features, to understand why they are so useful, so that you can consider incorporating those features, or at least consciously deciding not to include them, if you are designing a similar type building.
In software, a design pattern (for example, using a listener model to keep different parts of the software in sync) exists at a higher level than the nuts and bolts of how classes and objects are defined. It defines a particular, very useful, type of relationship between a set of classes and objects.
I wouldn't necessarily say that indicates a problem with OOP, it is more of a mechanism for sharing higher level design ideas.