画素マスクは2次元データ(幅*高さ)です。
カラー画像は3次元データ(幅*高さ*RGB)なので、上記のマスクをRGB3枚分重ねて適用する必要があります。
L*,a*,b*に分割した画像データは2次元データ(幅*高さ)なので、マスクをそのまま適用できます。
Im = imread('例-白飛び画像.jpeg'); % カラー画像:3次元データ(幅*高さ*RGB)
white_mask = rgb2gray(Im) > 250; % 画素マスク:2次元データ(幅*高さ)
Im(repmat(white_mask,[1 1 3])) = 0; % 輝度値250以上の画素を黒に
imshow(Im);
lab = rgb2lab(Im); % 元画像の白飛びしている部分を黒く塗りつぶした画像の RGB を L*a*b* に変換
[l,a,b] = imsplit(lab); % L*,a*,b*値に分割する
meanL = mean(l(~white_mask)) % 黒領域以外の画素値を抜き出してきて平均値を計算
meanA = mean(a(~white_mask))
meanB = mean(b(~white_mask))