LAST_INSERT_ID by fungovalo pouze pro automaticky generovaný primární klíč, který byl vytvořen v poli auto_increment. Ve vašem případě to vypadá, že id zadáváte explicitně, takže poslední vložené id není nastaveno.
Toto je jasné:
mysql> insert into test (id, name) VALUES (5, 'test 2');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 0 |
+------------------+
1 row in set (0.00 sec)
Toto je implicitní:
mysql> insert into test (name) values ('test');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 3 |
+------------------+
1 row in set (0.00 sec)