BUG: Pass args and kwargs to empty

Closes #6952

I wasn't sure what the best way to test this was. I went with calling `_apply_empty_result` directly and checking for a SystemExit to get around the try: except Exception block in `_apply_empty_result`.

I still don't think I've 100% ensured that `_apply_empty_result` will always be *called with* *args and **kwargs (if there are any), but if they are passed things will be handled correctly.