Lo he probado y funciona introduciendo datos desde la consola (insert into...)
Ahora bien, desde php sigue haciendolo mal.
He googleado y dicen que hay que configurar el php.ini (instale php apache y mysql por separado) y en default_charset poner:
default_charset = "iso-8859-1"
Pero nada de nada

He puesto
default_charset="latin1"
pero tampoco.
Se os ocurre por que no funciona bien?

default_charset="latin1"
No funcionara... Después de realizar cambios en el php.ini debes reiniciar apache.
Yo siempre ocupo UTF-8.
<?php
echo 'El juego de caracter predeterminado es: '.ini_get('default_charset').'<br>'; echo 'ñ';
?>
Salida:
El juego de caracter predeterminado es: UTF-8
ñ
default_charset = "UTF-8"
PHP siempre muestra el tipo de encoding por defecto en Content-type, en el encabezado. Para desactivar el charset simplemente deje el parámetro vacío.
Saludos.