Mit der Verwendung von `booktabs` hat die geänderte Ausgabe des Dezimaltrenners nichts zu tun, sondern mit dem genutzten Spaltentyp `S` und den Voreinstellungen des Paketes `siunitx`.
[`siunitx`][1].
In der unteren Tabelle wird dagegen der Inhalt genauso ausgegeben, wie Du ihn angegeben hast.
In der oberen Tabelle nutzt Du den `S`-Spaltentyp aus dem Paket `siunitx`, damit die Zahlen formatiert und am Dezimaltrenner ausgerichtet ausgegeben werden. `siunitx` verwendet in der Voreinstellung den Punkt als Dezimaltrenner. Wenn Du möchtest, dass genau der Dezimaltrenner so wie in Deiner Eingabe verwendet wird, dann nutze die Option `copy-decimal-marker`. 
    \documentclass[captions=tableabove]{scrartcl}
    \usepackage{selinput}
    \SelectInputMappings{adieresis={ä},germandbls={ß}}
    \usepackage{booktabs}
    \usepackage[copy-decimal-marker]{siunitx}
    \renewcommand*\familydefault{\sfdefault}
    \begin{document}
    \begin{table}
      \centering
      \caption{Header}
      \begin{tabular}{@{}rc*{6}{S}@{}}
        \toprule
       dfsgsd & 2 & -40,50 & 0,00 & 0,00 & -41,00 & 0,00 & 0,00\\
        \midrule
        & fgf & {1} & {2} & {3} & {4} & {5} & {6} \\
       dfg & 1 & 40.50 & 0.00 & 0.00 & 41.00 & 0.00 & 0.00\\
       dfsgsd & 2 & -40,50 & 0,00 & 0,00 & -41,00 & 0,00 & 0,00\\
        \bottomrule
      \end{tabular}
    \end{table}
    \end{document}
![alt text][1]
text][2]
Du kannst aber auch über die Option `output-decimal-marker={,}`, oder in dem Du das Paket `siunitx` mit einem passenden Wert für die Option `locale` lädst, vorgeben, dass immer ein Komma als Trenner ausgegeben wird.
    \documentclass[captions=tableabove]{scrartcl}
    \usepackage{selinput}
    \SelectInputMappings{adieresis={ä},germandbls={ß}}
    \usepackage{booktabs}
    \usepackage[output-decimal-marker={,}]{siunitx}
    
    \renewcommand*\familydefault{\sfdefault}
    \begin{document}
    \begin{table}
      \centering
      \caption{Header}
      \begin{tabular}{@{}rc*{6}{S}@{}}
        \toprule
       dfsgsd & 2 & -40,50 & 0,00 & 0,00 & -41,00 & 0,00 & 0,00\\
        \midrule
        & fgf & {1} & {2} & {3} & {4} & {5} & {6} \\
       dfg & 1 & 40.50 & 0.00 & 0.00 & 41.00 & 0.00 & 0.00\\
       dfsgsd & 2 & -40,50 & 0,00 & 0,00 & -41,00 & 0,00 & 0,00\\
        \bottomrule
      \end{tabular}
    \end{table}
    \end{document}
![alt text][2]
text][3]
Nebenbemerkung: Wenn Du das Paket [`selinput`][4] zum halbautomatischen Ermitteln der Eingabekodierung nutzen möchtest, musst Du auch den Befehl `\SelectInputMappings` mit entsprechenden Angaben im Argument machen.
  [1]: http://www.ctan.org/pkg/siunitx
  [2]: http://texwelt.de/wissen/upfiles/tw_kopu.png
  [2]: http://texwelt.de/wissen/upfiles/tw_komma.png[3]: http://texwelt.de/wissen/upfiles/tw_komma.png
  [4]: http://www.ctan.org/pkg/selinput