You don't have to use Tikz to add the labels, you can add them afterwards to the constructed box.
\documentclass{standalone}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{array}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\begin{document}
\sbox8{\begin{tikzpicture}
\pgfplotsset{%
width=4cm,
height=2cm,
scale only axis,
every x tick label/.append style={font=\scriptsize\color{gray!80!black}},
xmajorgrids,
xminorgrids,
every y tick label/.append style={font=\scriptsize\color{gray!80!black}},
ymajorgrids,
yminorgrids,
every axis x label/.style={at={(0.5,0)}, align=center, yshift=-28pt},
every axis y label/.style={at={(0,0.5)}, align=center, xshift=-38pt,
rotate=90}
}
\begin{groupplot}[%
group style={group size=3 by 6,
horizontal sep=5pt,
vertical sep=5pt},
xmode=log
]
% ROW 1
\nextgroupplot[
xticklabels={},
% yticklabels={},
xlabel={},
ylabel={Out 1},
xmin=0.1,
xmax=100000,
ymin=-400,
ymax=200,
title={In 1}
]
\nextgroupplot[
xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
xmin=0.1,
xmax=100000,
ymin=-400,
ymax=200,
title={In 2}
]
\nextgroupplot[
xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
xmin=0.1,
xmax=100000,
ymin=-400,
ymax=200,
title={In 3}
]
% ROW 2
\nextgroupplot[
xticklabels={},
% yticklabels={},
ytick={-180,-90,0,90,180},
xlabel={},
ylabel={Out 1},
xmin=0.1,
xmax=100000,
ymin=-200,
ymax=200
]
\nextgroupplot[
xticklabels={},
yticklabels={},
ytick={-180,-90,0,90,180},
xlabel={},
ylabel={},
xmin=0.1,
xmax=100000,
ymin=-200,
ymax=200
]
\nextgroupplot[
xticklabels={},
yticklabels={},
ytick={-180,-90,0,90,180},
xlabel={},
ylabel={},
xmin=0.1,
xmax=100000,
ymin=-200,
ymax=200
]
% ROW 3
\nextgroupplot[
xticklabels={},
% yticklabels={},
xlabel={},
ylabel={Out 2},
xmin=0.1,
xmax=100000,
ymin=-400,
ymax=200
]
\nextgroupplot[
xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
xmin=0.1,
xmax=100000,
ymin=-400,
ymax=200
]
\nextgroupplot[
xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
xmin=0.1,
xmax=100000,
ymin=-400,
ymax=200
]
% ROW 4
\nextgroupplot[
xticklabels={},
% yticklabels={},
xlabel={},
ylabel={Out 2},
ytick={-180,-90,0,90,180},
xmin=0.1,
xmax=100000,
ymin=-200,
ymax=200
]
\nextgroupplot[
xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
ytick={-180,-90,0,90,180},
xmin=0.1,
xmax=100000,
ymin=-200,
ymax=200
]
\nextgroupplot[
xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
ytick={-180,-90,0,90,180},
xmin=0.1,
xmax=100000,
ymin=-200,
ymax=200
]
% ROW 5
\nextgroupplot[
xticklabels={},
% yticklabels={},
xlabel={},
ylabel={Out 3},
xmin=0.1,
xmax=100000,
ymin=-400,
ymax=200
]
\nextgroupplot[
xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
xmin=0.1,
xmax=100000,
ymin=-400,
ymax=200
]
\nextgroupplot[
xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
xmin=0.1,
xmax=100000,
ymin=-400,
ymax=200
]
% ROW 6
\nextgroupplot[
% xticklabels={},
% yticklabels={},
xlabel={},
ylabel={Out 3},
ytick={-360,-180,0},
xmin=0.1,
xmax=100000,
ymin=-380,
ymax=20
]
\nextgroupplot[
% xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
ytick={-360,-180,0},
xmin=0.1,
xmax=100000,
ymin=-380,
ymax=20
]
\nextgroupplot[
% xticklabels={},
yticklabels={},
xlabel={},
ylabel={},
ytick={-360,-180,0},
xmin=0.1,
xmax=100000,
ymin=-380,
ymax=20
]
\end{groupplot}
\end{tikzpicture}}
\mbox{%
\rotatebox{90}{\makebox[\ht8]{Phase [\si{\degree}] Magnitude [\si{\decibel}]}}
\begin{tabular}[t]{c}\usebox8\\Frequency [\si{\hertz}]\end{tabular}}
\end{document}