可視レベル staff は(join の代わりに left join を使用し、追加の where 句を設けることで)可視性を保証する仕組みを提供していますが、可視レベル owner にはそのような仕組みがありません。
(ふむ、GitHub ソースのワンボックス化がもう機能しなくなった?)
SELECT g.id FROM groups g
LEFT JOIN group_users gu ON gu.group_id = g.id AND
gu.user_id = :user_id AND
gu.owner
WHERE g.visibility_level = :staff AND (gu.id IS NOT NULL OR :is_staff)
UNION ALL
SELECT g.id FROM groups g
JOIN group_users gu ON gu.group_id = g.id AND
gu.user_id = :user_id AND
gu.owner
WHERE g.visibility_level = :owners