- The GLSL compiler is provided by the GPU vendor, so the application crashes when there is no GPU driver found.
Well, technically the GLSL compiler is part of a conforming OpenGL implementation of high enough version. But that's just big words for essentially, what you said. So: Yes.
- Does this mean that on system without GPU, OpenGL applications which uses shaders will not run?
You need a OpenGL implementation capable of the features your program needs. Most OpenGL implementations are done in form of a combination of GPU and a (thin) driver layer that makes it possible to talk to the GPU by OpenGL.
- My understanding was that the GPU only enhances the fps and the app should run without GPU as well.
Well, that notion is wrong. A GPU is not a mere "performance enhancer". A GPU is a fully featured processing plattform and all OpenGL versions are designed to be implemented using this kind of processor, that GPUs are. There are software emulations, but those are slow and often not feature complete.
In fact OpenGL always was supposed to be implemented using some kind of GPU. The very first version of OpenGL was actually quite a literal 1:1 user space API of the registers and commands of SGI hardware graphics rasterizers; heck even some of the early OpenGL tokens have the numeric values put into SGI hardware's control registers.