I just ran into this problem realised that using ogr2ogr -sql parameter, you can cast the ID column from the source as an integer and it will get created in the shapefile.