What exactly does the Normal node do?
The Normal node outputs a normalized vector ((X,Y,Z)), meaning a vector with a length of 1. The ball represents the direction of the normal, like you were looking down on it from the top of the 3D Viewport. 

Therefore, the default output of the Normal node is (0,0,1), or directly up. When you rotate the ball, you are changing the output normal, as if you were looking at it from the top, so +X is to the right, and +Y is towards the top of your screen. 



If you choose to plug something into the Normal input, the Dot output will give the dot product of the input normal and the normal represented by the ball.