The definition of \implies is
% amsmath.sty, line 308:
\newcommand{\implies}{\DOTSB\;\Longrightarrow\;}
which means that you're setting the superscript after the thick space.
My suggestion is to define a new command
\documentclass{article}
\usepackage{amsmath}
\newcommand{\simplies}{\DOTSB\Longrightarrow}
\begin{document}
\begin{align*}
& a \simplies^f b \\
& a \implies b \\
& a \implies^f b
\end{align*}
\end{document}
The spacing around \implies is too big anyway. The second and third line are just for comparison.

If you want to preserve the spacing of \implies, you have no choice other than defining \simplies with an argument; probably optional, so you can use \simplies as a drop-in replacement for \implies:
\newcommand{\simplies}[1][]{\DOTSB\;\implies^{#1}\;}
and the above formula should be typed as
a \simplies[f] b