The answer is that it's already an option!
Just select Multiple: Yes in the field options;
Multiple : if set to "No" the field will allow the selection of a
single group of users, if set to "Yes" it will be possible to select
multiple groups of users.
I would not bother implementing a Joomla extension for this task. A mysql trigger (simply done via phpMyAdmin) is going to be a stable solution -- least likely to break while upgrading Joomla (you only need to be concerned if the table schemas change).
Here are a couple of educational pages: MySQL Trigger after update only if row has changed and Get OLD ...
I found the error in my query.
JOIN mus_virtuemart_product_categories as pc ON pc.virtuemart_product_id=vmp.product_parent_id
->join('INNER', $db->quoteName('#__virtuemart_product_categories','pc') .
' ON (' . $db->quoteName('pc.virtuemart_product_id') . ' = ' . $db->quoteName('vmp.virtuemart_product_id') . ')')