### Body

Currently when you use multiple-outputs in decorator and it gets None value, it crashes.

As explained in https://github.com/apache/airflow/issues/32553 and workaround for ShortCircuitOperator has been implemented here:  https://github.com/apache/airflow/pull/32569 

But a more complete fix for multiple-outputs handling None is needed. 

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
@task_decorator
    def fn(arg1, arg2):
        ...
    with dag_maker(session=session):
        task1 = BaseOperator(task_id="op1")
        mapped = fn.partial(arg2="{{ ti.task_id }}").expand(arg1=task1.output)
    dr = dag_maker.create_dagrun()
    ti: TaskInstance = dr.get_task_instance(task1.task_id, session=session)
    ti.xcom_push(key=XCOM_RETURN_KEY, value=["{{ ds }}"], session=session)
    session.add(
        TaskMap(
            dag_id=dr.dag_id,
            task_id=task1.task_id,
            run_id=dr.run_id,
            map_index=-1,
            length=1,
            keys=None,
        )
    )
    session.flush()
    mapped_ti: TaskInstance = dr.get_task_instance(mapped.operator.task_id, session=session)
    mapped_ti.map_index = 0
    assert isinstance(mapped_ti.task, MappedOperator)
    mapped.operator.render_template_fields(context=mapped_ti.get_template_context(session=session))
    assert isinstance(mapped_ti.task, BaseOperator)
    assert mapped_ti.task.op_kwargs["arg1"] == "{{ ds }}"
    assert mapped_ti.task.op_kwargs["arg2"] == "fn"
def test_task_decorator_has_wrapped_attr():