SD card read/write problems in SPI mode
The "checkbusy" must send 0xFF to the SD card (that is not clear in your question). Is this SD or SDHC? The latter have some differences in initialization and operation sequences.


  If we don't send dummy data after read ...


In SPI, you have to send data to be able to read from the client. Remember that the master always drives the clock line. The dummy data I send when reading SD cards is 0xFF, too.

The 512 zero bytes may be actual data from the device. Are you sure that you sent the address bytes in the correct order? The SD Simplified Specifications are available from the SD Association.