perché se dichiari il campo mysql come float, double o che altro deve rispettare il formato. Fai il number_format solo nel momento in cui devi visualizzare i dati.
Oppure tratta il campo come un varchar, ma non mi sembra proprio la soluzione migliore.

ti consiglio di seguire la prima