\documentclass[journal]{IEEEtran}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{lipsum}
\usepackage{afterpage}
\makeatletter
\newcommand{\setcaptype}[1]{\def\@captype{#1}}
\makeatother
\newsavebox{\tempbox}
\begin{document}
\savebox{\tempbox}{\begin{minipage}{\textwidth}% measuer height of figure
\setcaptype{figure}%
\centering
\subfloat[]{\includegraphics[width=0.4\linewidth]{example-image-a}}
\hfill
\subfloat[]{\includegraphics[width=0.4\linewidth]{example-image-b}}
\caption{Some dummy figures.}
\label{fig1}
\end{minipage}}
\begin{figure}[t]
\rlap{\usebox\tempbox}
\end{figure}
\afterpage{\begin{figure}[t]% next column
\rule{0pt}{\dimexpr \ht\tempbox+\dp\tempbox}
\end{figure}}
\section{This text should follow Fig. \ref{fig1}, not precede it!}
\lipsum[1-6]
% Problem happens also after a \clearpage
\clearpage
\savebox{\tempbox}{\begin{minipage}{\textwidth}% measuer height of figure
\setcaptype{figure}%
\centering
\subfloat[]{\includegraphics[width=0.8\linewidth,height=0.2\textheight]{example-image-c}}
\caption{Another figure.}
\label{fig2}
\end{minipage}}
\begin{figure}[t]
\rlap{\usebox\tempbox}
\end{figure}
\afterpage{\begin{figure}[t]% next column
\rule{0pt}{\dimexpr \ht\tempbox+\dp\tempbox}
\end{figure}}
\section{This text should follow Fig. \ref{fig2}, not precede it!}
\lipsum[1-6]
\end{document}