There is a bug in the way the trigger is cleared.
The function XScuGic_InterruptHandler() in xscugic_intr.c calls
XScuGic_CPUWriteReg(InstancePtr, XSCUGIC_EOI_OFFSET, IntID);
This does NOT specify the CPUID (so it is always CPUID = 0 that is CPU0).
The workaround is to add the following line to your DeviceDriverHandler() for CPU1 :
*(u32 *)(0xf8f00110) = ( 0x400 | INTC_DEVICE_INT_ID );
This will clear the interrupt specifying CPU1.
The issue has been resolved & verified in Vivado Design Suite release 2014.1.
The fix can be found in the 2014.1 build with the scugic_v2_0 driver.