\rowcolor covers text in tables because of using @{\,} between columns
Here is what you can do with {NiceTabular}
of nicematrix
.
Remark that you don't need \multirow
for the headers.
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{xcolor}
\usepackage{siunitx}
\usepackage{chemformula}
\usepackage{nicematrix}
\usepackage{makecell}
\NiceMatrixOptions{cell-space-top-limit = 2pt}
\begin{document}
\begin{table}[htb]
\begin{NiceTabular}{L@{\,}LS[table-format=3.2]R@{\,}L%
S[table-format=1.2e1,table-number-alignment=center]}%
[code-before = \rowcolor{lightgray}{3,4}]
\toprule
\multicolumn{2}{C}{Component}
&
{\makecell{{Stock Solution}\\ (\si{\gram\per\liter}\ch{dH2O)}} }
&
\multicolumn{2}{C}{Quantity}
&
{\makecell{Concentration in \\ Final Medium \\ (\si{\mole\per\liter})}}
\\
\midrule
\addlinespace
(1) & NaCl & {---} & \tablenum[table-format=4.0]{23} & g & 12.34e-5 \\[1mm]
\multirow{2}{*}{(2)} & A1 & 134.56 & {\multirow{2}{*}{\tablenum[table-format=4.0]{1}}} & {\multirow{2}{*}{mL}} & 23.56e-7 \\
& A2 & 56.78 & & & 56.47e-4 \\
\addlinespace
\multirow{2}{*}{(2)} & A2 & 56.78 & {\multirow{2}{*}{\tablenum[table-format=4.0]{1}}} & {\multirow{2}{*}{mL}} & 56.47e-4 \\
& A3 & 11.11 & & & 11.11e-1 \\
\addlinespace
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}
You need several compilations.