I read a nice definition for software composition here. It says
Software composition is the construction of software applications from components that implement abstractions pertaining to a particular problem domain
Is it the construction of these abstractions where design patterns fit in?
That's a higher level abstraction. Patterns solve common object-oriented problems.
Abstraction, encapsulation, and information hiding are pertinent at the level of individual components. You can do the latter without ever employing patterns.