### 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.
return "example"
        @dag.task(multiple_outputs=multiple_outputs)
        def up2(x) -> Union[dict, None]:
            if x == 2:
                return {"x": "example"}
            raise AirflowSkipException()
        @dag.task(trigger_rule=TriggerRule.NONE_FAILED_MIN_ONE_SUCCESS)
        def down(a, b):
            nonlocal result
            result = f"{a!r} {b!r}"
        down(up1(), up2(1)["x"])
    dr = dag_maker.create_dagrun()
    decision = dr.task_instance_scheduling_decisions(session=session)
    assert len(decision.schedulable_tis) == 2  
    for ti in decision.schedulable_tis:
        ti.run(session=session)
    decision = dr.task_instance_scheduling_decisions(session=session)
    assert len(decision.schedulable_tis) == 1  
    if multiple_outputs:
        decision.schedulable_tis[0].run(session=session)
        assert result == "'example' None"
    else:
        with pytest.raises(XComNotFound):
            decision.schedulable_tis[0].run(session=session)
@pytest.mark.filterwarnings("error")
def test_no_warnings(reset_logging_config, caplog):