Edit: The header would still be "focused" on the "section 2" text. To prevent this, I added \section*{} right after \bulletoff.
The "bullet system" is called miniframes, and are generated via a .nav file. The command responsible for writing to that file is the \beamer@writeslidentry. We can make this do nothing for a temporary amount of time:
\makeatletter
% Remember the way beamer did it before
\let\beamer@old@writeslidentry\beamer@writeslidentry
% Tell it to do nothing with the slides entry
\newcommand\bulletoff{\let\beamer@writeslidentry\relax}
% Reset it to the old ways
\newcommand\bulleton{\let\beamer@writeslidentry\beamer@old@writeslidentry}
\makeatother
Your entire code becomes then
\documentclass[handout]{beamer}
\usetheme[compress]{Singapore}
\begin{document}
\makeatletter
% Remember the way beamer did it before
\let\beamer@old@writeslidentry\beamer@writeslidentry
% Tell it to do nothing with the slides entry
\newcommand\bulletoff{\let\beamer@writeslidentry\relax}
% Reset it to the old ways
\newcommand\bulleton{\let\beamer@writeslidentry\beamer@old@writeslidentry}
\makeatother
\begin{frame}[plain]
\titlepage
\end{frame}
\begin{frame}{Introduction}
\end{frame}
\section{Section 1}
\begin{frame}{Slide 1a}
\end{frame}
\begin{frame}{Slide 1b}
\end{frame}
\section{Section 2}
\begin{frame}{Slide 2a}
\end{frame}
\begin{frame}{Slide 2b}
\end{frame}
\bulletoff\section*{}
\begin{frame}{Recapitulation}
No bullet here :)
\end{frame}
\end{document}
This produces exactly the image you presented:

Note that if you use the \bulleton command, it will behave differently if you do \clearpage prior to it. If you don't do \clearpage the bullet will be filled.