The problem here is that the Image Texture that you are baking is connected to the shader at the point you are baking the texture. When you click 'Bake', by default Blender will 'blank out' the image prior to baking. With the Image Texture connected to the shader this means that it is being rendered as if the surface is black and the result of that render is being stored back in image. The Image Texture node being used for the bake should be disconnected (and a suitable 'color' set to drive the shader) when you perform the bake. Once the image has been baked you are then free to reconnect the image texture - this time typically via an Emission shader node rather than, say, Diffuse - to show the baked result.
Rather than actually disconnect and reconnect the nodes, you can achieve this by way of multiple Material Output nodes - with the last one 'selected' becoming the 'active' one. For example, you could use the following nodes :
To render the scene using the Diffuse shader you can simply click the top Material Output node to make it active - and then render the scene.
To bake the image texture, first select the top Material Output node as above, then select the Image Texture node (this tells Blender which image to bake), then click Bake. This will overwrite the image with the results of the bake.
Once the texture is baked, simply click the bottom Material Output node to use the baked result.
With this setup there is no need to disconnect and reconnect the nodes when baking images - you just need to select the relevant Material Output node to switched to/from the baked result.