Is there a way to hide bones that don't have vertex groups
Weight is a property of vertex groups, so you can't have an automatic procedure to select and hide bones with or without weight. Anyway you can manually move all unwanted bones in a separate bone layer (M in pose mode), and make this layer visible or invisible.