Vamos por partes:
1. Supuestamente, cuando defines un campo como auto_increment, si le ingresas NULL no debería devolver error, sino que el motor de MySQL procede a numerar el campo. Verifica si lo está haciendo con un SELECT. El campo en la tabla no debería aparecer nulo.
2. Un campo definido como NOT NUL da error al ingresar un NULL siempre y cuando no sea auto_increment.
3. Puedes cambiar la COLLATION de la tabla en el momento de crearla. Verifica la sintaxis en el manual de referencia:
MySQL AB MySQL 5.0 Reference Manual Por default, te pone el predefinido por MySQL.
4. El motor de MySQL tiene predefinido, en la versión 5.0 a InnoDB como estándar. Si quieres tablas de otro tipo tienes que indicarla con la clausula ENGINE=MyISAM en la creación de la tabla.