There surely is an etymological reason, but unfortunately we don’t know it. Or there is no consensus about it.
All grammars mention the three second-declension neuters in -us, pelagus, virus and vulgus, and many go on explaining that pelagus is a recent Greek loanword which retained its gender (possibly influenced by mare), while virus has Indo-european cognates clarifying its history, and... what is said of vulgus is, at best, that both a regular masculine and a regular neuter exist alongside the irregular neuter in -us. They could be recent analogical forms, but somebody thinks that they are ancient and the irregular form was somehow conflated from them. Vulgus has known Indo-european cognates (Sanskrit varga, “group”), but they don’t explain its irregularity in an unambiguous way. At least, not in any sources I’ve consulted.