### Description

`ShortCircuitOperator` does not return any value regardless of the result. 

Still, if `condition` evaluates to `falsey`, it can be useful to store/save the result of the condition to XCom so that downstream tasks. can use. 
Many objects evaluates to True/False, not just booleans - see  https://docs.python.org/3/library/stdtypes.html

### Use case/motivation

The change is trivial and would allow to combine a Python task and ShortCircuit into one.:

1. if callable returns None (or False) -> skip
2. if callable returns non-empty object (or True) -> continue. The proposed change is to pass on the condition to XCom.

### Related issues

_No response_

### Are you willing to submit a PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

tests/operators/test_python.py
state=State.RUNNING,
        )
        task.run(start_date=DEFAULT_DATE, end_date=DEFAULT_DATE)
        ds_templated = DEFAULT_DATE.date().isoformat()
        assert 1 == len(recorded_calls)
        self._assert_calls_equal(
            recorded_calls[0],
            Call(
                4,
                date(2019, 1, 1),
                f"dag {self.dag.dag_id} ran on {ds_templated}.",
                Named(ds_templated, 'unchanged'),
            ),
        )
    def test_python_callable_keyword_arguments_are_templatized(self):
        """Test PythonOperator op_kwargs are templatized"""
        recorded_calls = []
        task = PythonOperator(
            task_id='python_operator',
            
            
            python_callable=build_recording_function(recorded_calls),
            op_kwargs={
                'an_int': 4,
                'a_date': date(2019, 1, 1),
                'a_templated_string': "dag {{dag.dag_id}} ran on {{ds}}.",
            },
            dag=self.dag,
        )
        self.dag.create_dagrun(