Casteo de campo para ordenar: tenemos un campo varchar, filtramos sólo los registros con valores numéricos y ordenamos con casteo
SELECT id, nombre, apellidos, SUBSTR(CONCAT('0000',codigo),-4) as CDB FROM empleados WHERE codigo REGEXP '^-?[0-9]+$' ORDER BY CAST(codigo AS UNSIGNED) ASC