Com a ajuda do comentário de Feras e algumas brincadeiras:
SELECT
u.user_id,
u.user_name,
g.user_group_id,
g.group_name
FROM user u
LEFT JOIN user_group g on JSON_CONTAINS(u.user_groups, CAST(g.user_group_id as JSON), '$')
Isso parece funcionar, deixe-me saber se há uma maneira melhor.