Bueno chic@s, lo he solucionado haciendo un while dentro de un while usando DISTINTC, nada de array_unique ni foerach:
Código PHP:
$query_Productos = "SELECT DISTINCT es_Familia FROM productos WHERE ApareceEnLaWeb = 'Si' ORDER BY es_Familia ASC";
$Productos = mysql_query($query_Productos, $bdmontsoliu) or die(mysql_error());
while ($row_Productos = mysql_fetch_array($Productos)){
echo '<li>'.$row_Productos['es_Familia'].'</li>';
$query_ProductosLista = "SELECT * FROM productos WHERE ApareceEnLaWeb = 'Si' AND es_Familia LIKE '".$row_Productos['es_Familia']."' ORDER BY es_Familia ASC";
$ProductosLista = mysql_query($query_ProductosLista, $bdmontsoliu) or die(mysql_error());
while ($row_ProductosLista = mysql_fetch_array($ProductosLista)){
echo '<ul><li>'.$row_ProductosLista['es_NombreProducto'].'</li></ul>';
}
}
Gracias a todos!!!