Grazie, ho risolto così! In realtà c'era qualche errore perché facendo così l'implode unisce i risultati senza spazi e quindi mostra un id errato. Inoltre era sbagliata la variabile. 
Comunque per completezza ecco il codice che funziona!
Codice PHP:
$MySql = "SELECT idchat FROM permessi WHERE idmembro = '$id'";
$risultati = mysql_query ($MySql) or die ( "Si è verificato un errore!");
while ($rs = mysql_fetch_assoc($risultati)){
$chat[] = $rs['idchat'];
}
$tempchat = implode(", ", $chat);
$MySql2 = "SELECT * FROM chat WHERE id IN($tempchat) ORDER BY chat.modifica DESC ";
$risultati2 = mysql_query ($MySql2) or die ( "Si è verificato un errore!");
while ($rs2 = mysql_fetch_array ($risultati2)){
$idchat = $rs2['id'];
$membri = $rs2['membri'];
$dataphp = $rs2['modifica'];
$data = date('d/m H:i:s', $dataphp);
echo "[*]<a href=\"chat.php?chat=$idchat\">$membri</a> - Ultimo messaggio: $data";
}
Grazie mille!