MySQL Error 1329 - Empty Cursor Issue
i made 3 changes to your SP:


initialize exit_loop to FALSE
change the name of each variable by adding "V_" to make them different to the column name: 
close the cursor outside the loop 


below the end result hopefully that solved your issue: 

DELIMITER //
CREATE PROCEDURE `Import_Leave`()
BEGIN
 DECLARE V_AbsenceID INT;
 DECLARE V_PersonID INT;
 DECLARE V_EmpID INT;
 DECLARE V_Start_Date DATETIME;
 DECLARE V_Numdays INT;
 DECLARE V_Category VARCHAR(50);
 DECLARE V_WorkFlow INT;

 DECLARE exit_loop BOOLEAN DEFAULT FALSE ;

 DECLARE absence CURSOR FOR SELECT AbsenceID,PersonID,EmpID,Start_Date,Numdays,Category,Workflow FROM staging_holidays WHERE EmpID is NOT NULL;
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;

 OPEN absence;

 shoop_da_woop: LOOP
    FETCH absence into V_AbsenceID,V_PersonID,V_EmpID,V_Start_Date,V_Numdays,V_Category,V_Workflow;

    IF exit_loop THEN
        LEAVE shoop_da_woop;
    END IF;
    #Code to process the data goes here, but is never executed asthe cursor is coming back empty
 END LOOP shoop_da_woop;

 CLOSE absence;

 END//
 DELIMITER ;