New answer
If you wish to have the subsection circles in just selected subsections and not throughout the presentation, then you can provide different definitions of \slideentry and commands to switch to one of these new definitions.
In the code below,
\slideentry@subsections provides circles for just the current subsection, one switches to this style with \subcircles
\slideentry@none removes the circles completely and their line, the switch command is \nocircles
\slideentry@old is the original definition, switched to with \stdcircles.
Starting with \nocircles and switching them on with \subcircles in the second section, then switching off again in the third section gives the following:




produced by
\documentclass[slidestop,compress,10pt,xcolor=dvipsnames]{beamer}
\newcommand*\oldmacro{}%
\let\oldmacro\insertshorttitle%
\renewcommand*\insertshorttitle{%
\oldmacro\hfill%
\insertframenumber\,/\,\inserttotalframenumber}
\setbeamertemplate{footline}[frame number]
\setbeamertemplate{blocks}[rounded][shadow=true]
\setbeamertemplate{navigation symbols}{}
\usetheme{Ilmenau}
\makeatletter
\def\slideentry@subsections#1#2#3#4#5#6{%
%section number, subsection number, slide number, first/last frame, page number, part number
\ifnum#6=\c@part\ifnum#2>0\ifnum#3>0%
\ifnum\c@section=#1\ifnum\c@subsection=#2%
\beamer@xpos=#3\relax%
\hbox to 0pt{%
\beamer@tempdim=-\beamer@vboxoffset%
\advance\beamer@tempdim by-\beamer@boxsize%
\multiply\beamer@tempdim by\beamer@ypos%
\advance\beamer@tempdim by -.05cm%
\raise\beamer@tempdim\hbox{%
\beamer@tempdim=\beamer@boxsize%
\multiply\beamer@tempdim by\beamer@xpos%
\advance\beamer@tempdim by -\beamer@boxsize%
\advance\beamer@tempdim by 1pt%
\kern\beamer@tempdim
\global\beamer@section@min@dim\beamer@tempdim
\hbox{\beamer@link(#4){%
\usebeamerfont{mini frame}%
\usebeamercolor[fg]{mini frame}%
\ifnum\c@subsectionslide=#3%
\usebeamertemplate{mini frame}%
\else%
\usebeamertemplate{mini frame in current subsection}%
\fi%
}}}\hskip-10cm plus 1fil%
}\fi\fi\fi\fi%
\fi\ignorespaces
}
\def\slideentry@none#1#2#3#4#5#6{}
\let\slideentry@old\slideentry
\def\subcircles{\let\slideentry\slideentry@subsections}
\def\nocircles{\let\slideentry\slideentry@none}
\def\stdcircles{\let\slideentry\slideentry@old}
\makeatother
\begin{document}
\section{Results}
\subsection{First Subsection}
\nocircles
\frame{Frame 0}
\subsection{Long Subsection}
\subcircles
\frame{Frame 1}
\frame{Frame 2}
\frame{Frame 3}
\frame{Frame 4}
\frame{Frame 5}
\frame{Frame 6}
\subsection{Third Subsection}
\nocircles
\frame{Frame 7}
\frame{Frame 8}
\frame{Frame 9}
\frame{Frame 10}
\end{document}
Previous answer
(Kept because of dicussion of the posted code.)
One problem with you code is that the \ifthenelse is exected only once, in the preamble. The other problem is that it irrevocably patches \slideentry that needs to be switched back to its standard definition afterwards.
My choice would be to define two commands, one (\subcircles) to turn on the new style, one (\stdcircles) to restore the old stlye. Here is one implementation.


\documentclass[slidestop,compress,10pt,xcolor=dvipsnames]{beamer}
\newcommand*\oldmacro{}%
\let\oldmacro\insertshorttitle%
\renewcommand*\insertshorttitle{%
\oldmacro\hfill%
\insertframenumber\,/\,\inserttotalframenumber}
\setbeamertemplate{footline}[frame number]
\setbeamertemplate{blocks}[rounded][shadow=true]
\setbeamertemplate{navigation symbols}{}
\usetheme{Ilmenau}
\usepackage{etoolbox}
\makeatletter
\let\oldbeamer@subsectionentry\beamer@subsectionentry
\let\old@slideentry\slideentry
\def\subscircles{%
\patchcmd{\slideentry}{\advance\beamer@xpos by1\relax}{}{}{}
\def\beamer@subsectionentry##1##2##3##4##5{\advance\beamer@xpos by1\relax}}
\def\stdcircles{%
\let\slideentry\old@slideentry
\let\beamer@subsectionentry\oldbeamer@subsectionentry
}
\makeatother
\begin{document}
\section{Results}
\subsection{First Subsection}
\frame{Frame 0}
\subsection{Long Subsection}
\subscircles
\frame{Frame 1}
\frame{Frame 2}
\frame{Frame 3}
\frame{Frame 4}
\frame{Frame 5}
\frame{Frame 6}
\subsection{Third Subsection}
\stdcircles
\frame{Frame 7}
\frame{Frame 8}
\frame{Frame 9}
\frame{Frame 10}
\end{document}
The old commands \beamer@subsectionentry and \slideentry are stored, so the restoration process is easy. The changing command \subcircles just implements your patch command process for \slideentry and your redefiniton of \beamer@subsectionentry.