Let's say I compile a C program. it's gets translated into bytecode,
  now what happens to that bytecode, does it immediately run on the
  processor, or does it get processed by the kernel first and then runs
  on processor after the kernel has manipulated it and handled the
  memory allocation & etc....
The kernel is the core of an operating system. In a traditional design, it is responsible for memory management, I/O, interrupt handling, and various other things. In order to implement its functionality, the C library must call kernel functions. This is all managed by the compiler itself,though,it might internally communicate with the kernel. Hence,there is a major-role of compiler.
The compiled code can be in the form of object code or binary executables, i.e., program.obj on ancient Windows OS and a.out on ancient *nix machines, or an executable file as in current Windows OS, Linux, etc.
The source code during compilation is converted into generated code(executables) for target machine which is to be run directly on system(processor) using registers and memory and KERNEL then plays major role...
Also, is a kernel considered as a virtual machine?
Also, your kernel is a major component of real machine! So,how it could be itself a virtual machine? 
So,clear answer--- NO !