Adding a White Kernel to GP Regressor makes predictions all 0

### Describe the bug

When using a White Kernel as part of multiple concatenated kernels, GP Regressors predictions get zeroed out and I have no idea what is causing this. WhiteKernel should be taking the variance into account

### Steps/Code to Reproduce

```py
from sklearn.gaussian_process import GaussianProcessRegressor as GPR
from sklearn.gaussian_process.kernels import *
from sklearn.model_selection import train_test_split
import numpy as np

z = np.linspace(-2, 2, 100)
x = (z**2 + 1) * np.sin(np.linspace(-np.pi, np.pi, 100))
y = (z**2 + 1) * np.cos(np.linspace(-np.pi, np.pi, 100))

X = np.stack((x, y), axis=1)
z = z.reshape(-1,1)

X_train, _, z_train, _ = train_test_split(
        X, z, test_size=0.5, random_state=624562
    )

z_train_noisy = np.random.normal(z_train, scale=0.15)

lpk = (
    ConstantKernel(
        constant_value=1, 
        constant_value_bounds=(1e-9, 1e1) 
    ) * 
    Matern(
        nu=1/2,
        length_scale=10,
        length_scale_bounds=(1e-1, 1e3), 
    ) 
    * WhiteKernel(
        noise_level=0.05, 
        noise_level_bounds=(1e-9, 1e1)
    )
)

gp_lpk = GPR(kernel=lpk, alpha=0, n_restarts_optimizer=9)
gp_lpk.fit(X_train, z_train_noisy)
mean_lpk = gp_lpk.predict(X)
print(gp_lpk.kernel_)
print(mean_lpk.ravel())
```


### Expected Results

Predictions should NOT be 0.  Once you remove the White Kernel, proper results are outputted by the predictions:

```
# with WhiteKernel portion of the code commented out...
[-2.03125    -0.11621094 -1.91918945 -1.87878704 -1.83838376 -1.79797979
 -0.18203694 -1.71717172 -1.67676768 -1.63636364 -1.5959596  -1.55555556
 -1.51515152 -0.14005377 -0.01437174 -0.00415608 -0.02226802 -0.17381066
 -1.27272727 -1.23232323 -0.20042717 -0.070184   -0.21225869 -1.07070707
 -0.22033593 -0.04920181 -0.01537788 -0.0193687  -0.06398342 -0.22928532
 -0.78787879 -0.74747475 -0.70707071 -0.41075972 -0.62626263 -0.38621499
 -0.54545455 -0.50505051 -0.46464646 -0.31149598 -0.38383838 -0.26256443
 -0.3030303  -0.20723792 -0.22222222 -0.14681369 -0.14141414 -0.07365431
 -0.03862871 -0.02020202  0.02020202  0.04985945  0.1010101   0.06007176
  0.04545836  0.05205201  0.0850591   0.16498927  0.34343434  0.18920046
  0.15539467  0.23412994  0.50505051  0.54545455  0.28134072  0.29948898
  0.66666667  0.70707071  0.29204393  0.30251409  0.82828283  0.43405597
  0.90909091  0.2346008   0.10014591  0.23111629  1.07070707  0.40056897
  1.15151515  1.19191919  1.23232323  0.18377049  0.04556809  0.16683251
  1.39393939  1.43434343  1.47474747  0.14681747  0.13610744  1.5959596
  1.63636364  1.67676768  0.19520833  1.75757576  0.16929066  1.83838385
  0.14538956  1.91915894  1.95996094  2.03125   ]
```

Using `alpha` from GP Regressor class instead of `WhiteKernel` as a substitute for the variance works but is not desirable since `WhiteKernel` should be able to handle that.

### Actual Results

```
1.36**2 * Matern(length_scale=0.399, nu=0.5) * WhiteKernel(noise_level=0.942)
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
 0. 0. 0. 0.]
```

### Versions

```shell
System:
    python: 3.9.7 (default, Sep 16 2021, 13:09:58)  [GCC 7.5.0]
executable: /home/rona1das/Tools/anaconda3/envs/thesis/bin/python
   machine: Linux-5.4.0-99-generic-x86_64-with-glibc2.31

Python dependencies:
          pip: 21.2.4
   setuptools: 58.0.4
      sklearn: 1.0.1
        numpy: 1.21.2
        scipy: 1.7.1
       Cython: None
       pandas: None
   matplotlib: 3.4.3
       joblib: 1.1.0
threadpoolctl: 2.2.0

Built with OpenMP: True
```

COMMENT:
In your example, you are multiplied by a `WhiteKernel` instead of adding it:


```python
from sklearn.gaussian_process import GaussianProcessRegressor as GPR
from sklearn.gaussian_process.kernels import *
from sklearn.model_selection import train_test_split
import numpy as np

z = np.linspace(-2, 2, 100)
x = (z**2 + 1) * np.sin(np.linspace(-np.pi, np.pi, 100))
y = (z**2 + 1) * np.cos(np.linspace(-np.pi, np.pi, 100))

X = np.stack((x, y), axis=1)
z = z.reshape(-1,1)

X_train, _, z_train, _ = train_test_split(
        X, z, test_size=0.5, random_state=624562
    )

z_train_noisy = np.random.normal(z_train, scale=0.15)

lpk = (
    ConstantKernel(
        constant_value=1, 
        constant_value_bounds=(1e-9, 1e1) 
    ) * 
    Matern(
        nu=1/2,
        length_scale=10,
        length_scale_bounds=(1e-1, 1e3), 
    ) 
    + WhiteKernel(
        noise_level=0.05, 
        noise_level_bounds=(1e-9, 1e1)
    )
)

gp_lpk = GPR(kernel=lpk, alpha=0, n_restarts_optimizer=9)
gp_lpk.fit(X_train, z_train_noisy)
mean_lpk = gp_lpk.predict(X_train)
print(gp_lpk.kernel_)
print(mean_lpk.ravel())
```

```
1.75**2 * Matern(length_scale=12.3, nu=0.5) + WhiteKernel(noise_level=0.293)
[-1.6550564   0.17750295 -1.22212138 -1.68810195 -0.09875036  1.586543
  1.21167509  1.05899232 -1.55142822  1.60482506  0.70636166  1.12453271
  0.51935985 -0.55861861  1.43362132  1.40100842  0.17750295 -1.08131709
  1.38056256 -0.69613798  0.85001242  1.2166683  -0.3777045   0.23336821
 -0.79067456  1.67655213 -0.47157008 -1.52585474  0.97484548 -0.19243367
 -1.59431985 -0.63150176  0.09506498  0.02500448 -0.50918342 -1.66572845
  0.05490814  1.45852647  1.56976794 -0.29105506 -1.19283725 -1.67944262
 -1.52655099  1.22818426 -0.75116442  0.47870009  0.63875545  1.68317489
 -1.18821967 -1.66164438]
```

Labels: Bug, Needs Triage