It seems your VNC viewer doesn't support client-side caching.
So you should either use VNC viewer which supports it, or you need to remove -ncache (an experimental) option from your x11vnc command. In case it's enabled by default, try to disable it by specifying -noncache option.
Basically when it is enabled, it activates the client-side caching scheme which stores pixel data offscreen on the VNC viewer side for faster retrieval and it should work with any VNC viewer. However it seems it's not working correctly with some clients.
As per Ubuntu forum thread, this is how -ncache works.
It makes a desktop 10X taller than the normal height and uses the extra framebuffer for caching windows and their saveunders.
If you can't get KRDC to not show you that region (e.g. by resizing its window) then you can't use KRDC with x11vnc -ncache.
So for now the only -ncache "support" is for a viewer to be able to have a scrollbar and to be able to disable auto-scrolling. Or on unix/macosx use ssvnc.
See: Can x11vnc do client-side caching of pixel data? for further information.
The n in -ncache n is the factor of increase over the base framebuffer size to use for caching. It is an even integer and should be fairly large, 6-12, to achieve good response. This usually requires about 50-100MB of additional RAM on both the client and server sides. For example with n=6 a 1280x1024 display will use a framebuffer that is 1280x7168: everything below row 1024 is the pixel buffer cache.