The OpenGL docs for glUseProgram claim that calling it with an argument of zero will cause the results of shader execution to be undefined.
undefined
However
It tells OpenGL to use the fixed-function pipeline.