### Apache Airflow version

main (development)

### What happened

Create a simple dag, allow it to completely run through. 

Next, when in grid view, on the left hand side click on the dag run at the top level. 

On the right hand side, then click on "Clear existing tasks". This will error with the following on the web server:

```
[2022-11-29 17:55:05,939] {app.py:1742} ERROR - Exception on /dagrun_clear [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/opt/airflow/airflow/www/auth.py", line 47, in decorated
    return func(*args, **kwargs)
  File "/opt/airflow/airflow/www/decorators.py", line 83, in wrapper
    return f(*args, **kwargs)
  File "/opt/airflow/airflow/www/views.py", line 2184, in dagrun_clear
    confirmed=confirmed,
  File "/opt/airflow/airflow/www/views.py", line 2046, in _clear_dag_tis
    session=session,
  File "/opt/airflow/airflow/utils/session.py", line 72, in wrapper
    return func(*args, **kwargs)
  File "/opt/airflow/airflow/models/dag.py", line 2030, in clear
    exclude_task_ids=exclude_task_ids,
  File "/opt/airflow/airflow/models/dag.py", line 1619, in _get_task_instances
    tis = session.query(TaskInstance)
AttributeError: 'NoneType' object has no attribute 'query'
```
https://github.com/apache/airflow/blob/527fbce462429fc9836837378f801eed4e9d194f/airflow/models/dag.py#L1619

As per issue title, fails on main branch and `2.5.0rc2`. Works fine on `2.3.3` and `2.4.3`. 


### What you think should happen instead

Tasks within the dag should be cleared as expected. 

### How to reproduce

Run a dag, attempt to clear it within the UI at the top level of the dag. 

### Operating System

Ran via breeze

### Versions of Apache Airflow Providers

N/A

### Deployment

Other 3rd-party Helm chart

### Deployment details

Tested via breeze. 

### Anything else

Happens every time. 

### Are you willing to submit 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)

@functools.total_ordering
class DAG(LoggingMixin):
    """
    A dag (directed acyclic graph) is a collection of tasks with directional
    dependencies. A dag also has a schedule, a start date and an end date
    (optional). For each schedule, (say daily or hourly), the DAG needs to run
    each individual tasks as their dependencies are met. Certain tasks have
    the property of depending on their own past, meaning that they can't run
    until their previous schedule (and upstream tasks) are completed.
    DAGs essentially act as namespaces for tasks. A task_id can only be
    added once to a DAG.
    Note that if you plan to use time zones all the dates provided should be pendulum
    dates. See :ref:`timezone_aware_dags`.
    .. versionadded:: 2.4
        The *schedule* argument to specify either time-based scheduling logic
        (timetable), or dataset-driven triggers.
    .. deprecated:: 2.4
        The arguments *schedule_interval* and *timetable*. Their functionalities
        are merged into the new *schedule* argument.
    :param dag_id: The id of the DAG; must consist exclusively of alphanumeric
        characters, dashes, dots and underscores (all ASCII)
    :param description: The description for the DAG to e.g. be shown on the webserver
    :param schedule: Defines the rules according to which DAG runs are scheduled. Can
        accept cron string, timedelta object, Timetable, or list of Dataset objects.
        See also :doc:`/howto/timetable`.
    :param start_date: The timestamp from which the scheduler will
        attempt to backfill
    :param end_date: A date beyond which your DAG won't run, leave to None
        for open ended scheduling
    :param template_searchpath: This list of folders (non relative)