SI un número de ID es autonumérico, simplemente no lo envíes, no tiene sentido, especialmente cuando estás invocando uno por uno los campos:
Código MySQL:
Ver originalINSERT INTO direcciones
(direccion
, poblacion
, provincia
, ZIPCode
, pais
) VALUES ('$direccion','$poblacion','$provincia','$ZIPCode','$pais')
Si vas a poner sólo el nombre de la tabla y no indicar qué columnas ingresarás, entonces en lugar de omitirlo, le envías NULL, pero NULL como valor SQL, no como cadena: