Yes, generally you put png tiles to one layer, and data from OSM file to another one.
Now there is question how to read OSM XML file as layer. OSM XML is meant as flexible data exchange format, not for rendering, so it is bulky and does not have indexes. You can create XML parser and read it directly, which is ok if you have small dataset, but I would:
- convert it to Spatialite using spatialite_osm_map tool
- then read via SpatiaLite DataSource (in AdvancedLayers) to a Vector Layer.