`IterativeImputer` skip iterative part if `keep_empty_features` is set to `True`

### Describe the bug

The mask is set to all True, so that the iterative imputation will be skipped.

https://github.com/scikit-learn/scikit-learn/blob/a4ebe19a95ffbb3cf6abf3e98d737d0d097f5de3/sklearn/impute/_iterative.py#L649-L651

### Steps/Code to Reproduce

```python
import numpy as np
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer

imp = IterativeImputer(keep_empty_features=True)
X = [[np.nan, 0, 1], [2, np.nan, 3], [4, 5, np.nan]]
print(imp.fit_transform(X))
print(imp.imputation_sequence_)
```

### Expected Results

Should act the same as `keep_empty_features=False`

### Actual Results

```
# transformed X
[[3.  0.  1. ]
 [2.  2.5 3. ]
 [4.  5.  2. ]]

# imputation_sequence_
[]
```

### Versions

```shell
System:
    python: 3.9.16 | packaged by conda-forge | (main, Feb  1 2023, 21:38:11)  [Clang 14.0.6 ]
executable: /Users/xxf/miniconda3/envs/sklearn-env/bin/python
   machine: macOS-14.5-arm64-arm-64bit

Python dependencies:
      sklearn: 1.6.dev0
          pip: 23.2.1
   setuptools: 68.0.0
        numpy: 1.26.4
        scipy: 1.13.0
       Cython: 3.0.8
       pandas: 2.1.0
   matplotlib: 3.7.2
       joblib: 1.3.0
threadpoolctl: 3.5.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
    num_threads: 8
         prefix: libopenblas
       filepath: /Users/xxf/miniconda3/envs/sklearn-env/lib/libopenblas.0.dylib
        version: 0.3.23
threading_layer: openmp
   architecture: VORTEX

       user_api: openmp
   internal_api: openmp
    num_threads: 8
         prefix: libomp
       filepath: /Users/xxf/miniconda3/envs/sklearn-env/lib/libomp.dylib
        version: None
```

COMMENT:
For the new case which @xuefeng-xu has given:
```python
X = [[np.nan, np.nan, 0, 1], [np.nan, 2, np.nan, 3], [np.nan, 4, 5, np.nan]]
```
I also found a new error in the below code:
```python
import numpy as np
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer

imp = IterativeImputer(initial_strategy='constant', fill_value=5)
X = [[np.nan, np.nan, 0, 1], [np.nan, 2, np.nan, 3], [np.nan, 4, 5, np.nan]]
print(imp.fit_transform(X))
print(imp.imputation_sequence_)
```

Causes the following error:
```
Traceback (most recent call last):
  File "C:\Users\panur\scikit-learn\test.py", line 7, in <module>
    print(imp.fit_transform(X))
          ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\panur\scikit-learn\sklearn\utils\_set_output.py", line 313, in wrapped
    data_to_wrap = f(self, X, *args, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\panur\scikit-learn\sklearn\base.py", line 1514, in wrapper
    return fit_method(estimator, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\panur\scikit-learn\sklearn\impute\_iterative.py", line 789, in fit_transform
    Xt, estimator = self._impute_one_feature(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\panur\scikit-learn\sklearn\impute\_iterative.py", line 418, in _impute_one_feature
    estimator.fit(X_train, y_train, **params)
  File "C:\Users\panur\scikit-learn\sklearn\base.py", line 1514, in wrapper
    return fit_method(estimator, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\panur\scikit-learn\sklearn\linear_model\_bayes.py", line 238, in fit
    X, y = self._validate_data(
           ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\panur\scikit-learn\sklearn\base.py", line 650, in _validate_data
    X, y = check_X_y(X, y, **check_params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\panur\scikit-learn\sklearn\utils\validation.py", line 1295, in check_X_y
    X = check_array(
        ^^^^^^^^^^^^
  File "C:\Users\panur\scikit-learn\sklearn\utils\validation.py", line 1081, in check_array
    raise ValueError(
ValueError: Found array with 0 sample(s) (shape=(0, 3)) while a minimum of 1 is required by BayesianRidge.
```

Labels: Bug