According to my understanding, the purpose of the fortification lines erected by the Chinese (especially the Ming) was to prevent large-scale raids and military expeditions into Chinese lands primarily by being an obstacle especially for horses and baggage trains, providing an early warning system, and facilitating quick deployment of troops.
Looking at pictures, it seems to me that the walls would pose just as much of an obstacle to armies attempting to cross it from the south. I think there are only around 10 or so gates/passes, so I suspect that the moment a Chinese army moved north the steppe nomads would know about it. And if one of these passes ever fell to a northern army they could have used it as a base of operations while the Chinese wouldn't have been able to drive them off without an extended siege.
So basically, did the Great Wall only protect the Chinese from the northern horsemen, or could it work both ways?
The steppe tribes would not be constantly monitoring each pass to check when an army was being sent out, and even so, they did not have the means to properly respond with enough force as the Chinese had if the steppe people had been the ones crossing. Even if you ignored the logistics required to simply take over a pass, it would take even more supplies to maintain a base of operations - constantly supplying fresh food and arms would be hard to do over the steppes, all the while watching for reinforcements from a local garrison. This is why it was almost exclusively the better option to continue on to an actual city to pillage once passing the gate (or even pushing on into the capital), rather than staying put in the pass. Thus, the wall mostly protected from raiders rather than the raiders from a Chinese army. To further answer your question, no, the wall did not impede Chinese expansion (as you can see in this map the shifting construction in walls roughly aligning with the expansion/recession of contemporary dynasty borders).