Ho creato una seconda query che estrapola solo i gruppi e ho settato il tutto così:

codice:
*query1*
*query2*
...
while ($rG = $gruppi1 -> fetch())
    {
        $xml .= '<gruppo>' . "\r\n";

        while ($r = $raggruppamenti -> fetch())

            {
            $xml .= '<membro>' . "\r\n";
                $xml .= '<nome>' . $r['record'] . '</nome>' . "\r\n";
            $xml .= '</membro>' . "\r\n";
            }


    $xml .= '</gruppo>' . "\r\n";


    }
Ottengo questo risultato:

codice:
<gruppo>
    <membro>
        <nome>record1</nome>
    </membro>
    <membro>
        <nome>record2</nome>
    </membro>
    <membro>
        <nome>record3</nome>
    </membro>
    <membro>
        <nome>record4</nome>
    </membro>
</gruppo>
<gruppo>
</gruppo>