Since Apache already determined that the file actually exists, it wont look for 404 again.
One workaround could be actually sending a Location
-header to a actual non-existant page and let Apache handle it. Another could be fetching the 404 page contents through PHP and outputting it together with a Status: 404
-header