BUG: preserve dtype to `bool[pyarrow]` when calling pyarrow backed `Series.isna()`
- [x] closes #59431 (Replace xxxx with the GitHub issue number)
- [x] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [x] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

# Test output
```
============================================================================================================ test session starts =============================================================================================================
platform darwin -- Python 3.10.14, pytest-8.3.2, pluggy-1.5.0
PyQt5 5.15.9 -- Qt runtime 5.15.8 -- Qt compiled 5.15.8
rootdir: /Users/kev/self/pandas
configfile: pyproject.toml
plugins: localserver-0.0.0, qt-4.4.0, cov-5.0.0, anyio-4.4.0, hypothesis-6.108.7, cython-0.3.1, xdist-3.6.1
collected 2 items

pandas/tests/series/methods/test_isna.py ..

------------------------------------------------------------------------------------------ generated xml file: /Users/kev/self/pandas/test-data.xml ------------------------------------------------------------------------------------------
============================================================================================================ slowest 30 durations ============================================================================================================

(6 durations < 0.005s hidden.  Use -vv to show these durations.)
============================================================================================================= 2 passed in 0.04s ==============================================================================================================
```

# Reproducible Example
```
s = pd.Series([0, None, 4, 5], dtype="u1[pyarrow]")
print(f"s:\n{s}\n")
print(f"s.isna():\n{s.isna()}")
```
## Before
```
s:
0       0
1    <NA>
2       4
3       5
dtype: uint8[pyarrow]

s.isna():
0    False
1     True
2    False
3    False
dtype: bool
```
## After
```
s:
0       0
1    <NA>
2       4
3       5
dtype: uint8[pyarrow]

s.isna():
0    False
1     True
2    False
3    False
dtype: bool[pyarrow]
```

Will apply the changes based on the review within this week. Thanks Seems like this breaks some tests on `pandas/tests/extension/test_arrow.py` Any ideas for a fix with this? i think have to change the tests from asserting bool to bool[pyarrow] as well Thanks for the PR, but given the issue https://github.com/pandas-dev/pandas/issues/59431, this requires more discussion before opening a PR so closing