They're difference because you're culling the wrong faces. Your mesh data is clearly oriented so that the front face is different from OpenGL's defaults. OpenGL defaults to counter-clockwise being front. Your mesh data puts the clockwise face front (or you're inverting your mesh at some point).
So, in lieu of rearranging your vertex data, change your front face with the aptly named glFrontFace(GL_CW)
.