You cannot do that statically (well not exactly static, but the block is constructed way before the correct time to do this). The item isn't initialized at that time, and the object holder is still null. You probably don't want it to be singletons anyways.
Create a new stack and give it to the player inside onBlockActivated.
You are also adding to the player's inventory on both sides, while it should only be done on the server. Use World#isRemote (returns false on server and true on client) to check if you are on the server side.