Bueno, tuve un problema similar con LPAD, estaba truncando el número a la longitud de su almohadilla. Según https://dev.mysql.com /doc/refman/8.0/en/string-functions.html#function_lpad es el resultado esperado.
Por lo que puedo ver, nadie mencionó la respuesta que resolvió mi mismo problema:
LPAD(id, GREATEST(LENGTH(id), 4), "0")
Funciona como se esperaba. Rellena cualquier id
tiene menos de 4 caracteres con 0 y devuelve id
sin cambios 's que tienen más de 4 caracteres.
Dejo mi respuesta aquí para otras personas, que encontrarán esta pregunta en el futuro.