You can try QuickOSM plug-in for QGIS:
With the plugin you can download / extract data from OSM to your project as Points / Lines ... and afterwards use it as any other data in your qgisQGIS project.
or
Also, is there a way to differentiate residential buildings/houses from commercial buildings/shops?
This is only possible if you find a tag that make this distinction and much more important someone has tagged it.
https://wiki.openstreetmap.org/wiki/Tags
You can predict urban morphology by values as heigtheight, area, perimeter and data from osmOSM etc... but therefore you don't get a plugin, this has to be done by coding.
A pythonPython library could be: