Within your application/config/config.php file you need to set the error reporting level to catch php errors.
Once this option is on all php errors should be logged within the system/logs folder.
Because the redirect function uses a header redirect no content (even errors) are sent to the browser, otherwise your redirect would stop working.
Edit:
As far as I can see you want to do 1 of 3 things:
Option 1
Display the error and not do any redirect at all. If this is the case just remove the redirect function from your error handler.
Option 2
Display the error but redirect after a period of time. If this is the case your looking at doing a different type of header redirect:
header("refresh:5;url=/somewhere/else");
This will after 5 seconds redirect the browser to somewhere/else.
Option 3
Conditionally do the redirect (if in development show the error, if not in developement then don't show the error).
To do this add a conditional statement to the Code Igniter error handler to test if you are in developement mode, or check your ip and then do the redirect depending on these.
Is this the kind of thing you are looking to do? Or is it more like only redirect if there was no php error? If so, where are you calling the redirect function from?