I have never used RF24 things, but I think the obvious reason why it doesn't work is, when the arduino is sleeping, the RF24 library cannot work, so it can't receive, so available() will always be 0 (unless the data came right after the arduino is awaken, but it's very unlikely).
I believe there is an INT pin on the RF24 module, that can be used to trigger an interrupt and wake up the arduino, when data is received.
Edit: this video might help: