Tree module - Broken test: test fails when changing random_state=0 to =1

In the test `tree/tests/test_tree.py::test_regression_tree_missing_values_toy`, in this [line](https://github.com/scikit-learn/scikit-learn/blob/0033630cd35d5945ea8c1b5beff6efe9583cd523/sklearn/tree/tests/test_tree.py#L2695C1-L2696C1):

```
    tree = Tree(criterion=criterion, random_state=0).fit(X, y)
```

if you change `random_state=0` to `random_state=1` all the tests with `Tree` being `ExtraTreeRegressor` fails.

It is completly logical when you look at the code: when there are missing values the random split (which is what `ExtraTreeRegressor`  does) *randomly* put them to the left or the right. The *randomly* part here is not compatible the test logic. It's a lucky 1/16 chance in the choice of the random_seed that made this test passed until now (I ran the test with 1000 seeds, and it's indeed 1/16, because it's tested on 4 arrays, hence proba = 1/2^4).

I'm willing to open a PR to fix this. My suggestion is to stop running this test on `ExtraTreeRegressor`, there are alreay many tests on `ExtraTreeRegressor`s and the issues linked in the docstring of this test aren't mentionning `ExtraTreeRegressor` anywhere.

COMMENT:
Hey @cakedev0 very good catch!

I confirm that when we have the following:

```
@pytest.mark.parametrize("Tree", [DecisionTreeRegressor, ExtraTreeRegressor])
@pytest.mark.parametrize(
    "X",
    [
        # missing values will go left for greedy splits
        np.array([np.nan, 2, np.nan, 4, 5, 6]),
        np.array([np.nan, np.nan, 3, 4, 5, 6]),
        # missing values will go right for greedy splits
        np.array([1, 2, 3, 4, np.nan, np.nan]),
        np.array([1, 2, 3, np.nan, 6, np.nan]),
    ],
)
@pytest.mark.parametrize("criterion", ["squared_error", "friedman_mse"])
def test_regression_tree_missing_values_toy(Tree, X, criterion, global_random_seed):
    """Check that we properly handle missing values in regression trees using a toy
    dataset.

    The regression targeted by this test was that we were not reinitializing the
    criterion when it comes to the number of missing values. Therefore, the value
    of the critetion (i.e. MSE) was completely wrong.

    This test check that the MSE is null when there is a single sample in the leaf.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28254
    https://github.com/scikit-learn/scikit-learn/issues/28316
    """
    X = X.reshape(-1, 1)
    y = np.arange(6)

    tree = Tree(criterion=criterion, random_state=global_random_seed).fit(X, y)
    tree_ref = clone(tree).fit(y.reshape(-1, 1), y)

    impurity = tree.tree_.impurity
    assert all(impurity >= 0), impurity.min()  # MSE should always be positive

    # Note: the impurity matches after the first split only on greedy trees
    # if Tree is DecisionTreeRegressor:
    # Check the impurity match after the first split
    assert_allclose(tree.tree_.impurity[:2], tree_ref.tree_.impurity[:2])

    # Find the leaves with a single sample where the MSE should be 0
    leaves_idx = np.flatnonzero(
        (tree.tree_.children_left == -1) & (tree.tree_.n_node_samples == 1)
    )
    assert_allclose(tree.tree_.impurity[leaves_idx], 0.0)


FAILED sklearn/tree/tests/test_tree.py::test_regression_tree_missing_values_toy[99-squared_error-X2-ExtraTreeRegressor] - AssertionError: 
FAILED sklearn/tree/tests/test_tree.py::test_regression_tree_missing_values_toy[99-squared_error-X3-ExtraTreeRegressor] - AssertionError: 
FAILED sklearn/tree/tests/test_tree.py::test_regression_tree_missing_values_toy[99-friedman_mse-X1-ExtraTreeRegressor] - AssertionError: 
FAILED sklearn/tree/tests/test_tree.py::test_regression_tree_missing_values_toy[99-friedman_mse-X2-ExtraTreeRegressor] - AssertionError: 
FAILED sklearn/tree/tests/test_tree.py::test_regression_tree_missing_values_toy[99-friedman_mse-X3-ExtraTreeRegressor] - AssertionError: 
===================================== 622 failed, 978 passed in 25.01s =
```

But if we revert the code back to the previous code, it succeeds. Do you want to submit a PR with the relevant fix @cakedev0 ?

Labels: module:tree