Почему в бд записываются нули?
у вас 2 инсерта в коде.
один вставляет ИД, другой имена. Все правильно в базе. Ровно по вашему алгоритму)
проблема в Вашем коде в том, что в выполняете 2 операции вставки :
 - mysqli_query($db_connect, "INSERT INTO `users` (`id`) VALUES ('$id')"); 
вставляет запись с заполненным полем id, и пустым полем имени , поскольку значение для вставки в поле  не указано
- предпоследняя строка кода вставляет в таблицу запись с неуказанным значение поля id (по умолчанию заполняется 0) и занчение имени.
Вам надо за одну операцию вставки записывать значения обеих полей.
ту строку, где первая вставка записи с ид закоментируйте или удалите,
а предпоследнюю перепишите примерно так:$query = mysqli_query($db_connect, "INSERT INTO `users` (`id`, `names`) VALUES ('$id', '$first_name $last_name')");
        }