SDIO with STM32F4 discovery
I had the same problem, I found a possibility in the STM forum, it did not work for me but maybe it will for you. The answer was: "but I added in a few millisecond delays around the SD Init phase, and that seemed to fix the problem".

Later I fixed my problem, the HSEON flag in the RCC register was not set and because of that the PLL clock could not start. Without the PLL the SDIO does not have a clock and therefore cannot run. I have posted all my steps in the STM32 forum.