Looking at the documentation, there are
maxZoom options available
mapboxgl.Map object. Set these to 9 and 13 respectively and users won't be able to zoom beyond these points.
As for skipping zoom 10 and 12, you could listen to the zoom event, test whether the new zoom is 10 or 12, and force the map to skip to the next zoom. (I'm not sure what the zoom event looks like internally, but it must contain all the necessary data: previous zoom and new zoom. Throw it up on a jsfiddle and I'll take a look)
That being said, forcing users to skip a zoom level seems like bad UI. I wouldn't recommend it unless there's really no way to generate tiles at zoom 10 and 12.