La ejecución de funciones del grupo _fetch_ (mysql_fetch_row() por ejemplo ..) lo que hacen es obtener Un registro y mueven el puntero una posición hacia adelante en el "record-set" (resultados obtenidos) ...
SI quieres volver a reusar tu $res1 (resultado de mysql_query() ...) para otro mysql_fetch_xxx() .. debes devolver el puntero de la consulta al principio con la función:
mysql_data_seek()
www.php.net/mysql_data_seek
Usalo despues de cada wihile(){...} aquí .. y luego el siguiente while(){...} ....
Código PHP:
mysql_data_seek($res1,0);
Un saludo,