You need to set the frequency and enable the base and branch clocks for SGPIO, but you've probably done this already..
Datasheet mentions the latency for reads and writes to SGPIO registers, which is quite large, and includes 2-4 SGPIO clocks.
Thus, if your SGPIO clock is slow (in my case it was 25 MHz) relative to main cpu clock, SGPIO register writes will be extremely slow, making the SGPIO IRQ a major cpu hog. Solution is increasing SGPIO frequency and playing with the dividers.
Anyway, I'd like to see the rest of your code, especially the part with the NVIC_EnableIRQ. Here you disable the IRQ and complain it doesn't work, but I guess you must call NVIC_EnableIRQ somewhere... perhaps the delay plays with the interaction of NVIC_EnableIRQ and the enabling of interrupts in the SGPIO registers ? I did not have this problem. Strange.