Der Fehler kommt daher, dass das Argument in den ersten geschweiften Klammern eine Zahl sein muss. `1 x 2 x 3` ist aber keine Zahl, sondern besteht aus Ziffern, Leerzeichen und dem Buchstaben `x`. Funktionieren würde beispielsweise:
\documentclass[pdftex,]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\begin{document}
1 x 2 x \SI[product-units=power]{3}{\mm}
\end{document}
oder
\documentclass[pdftex,]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\begin{document}
1 \texttimes{} 2 \texttimes{} \SI[product-units=power]{3}{\mm}
\end{document}
oder
\documentclass[pdftex,]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\begin{document}
$1 \times 2 \times \SI[product-units=power]{3}{\mm}$
\end{document}
Die Anweisung `\SI` ist übrigens veraltet. Mit einem aktuellen `siunitx` sollte man stattdessen `qty` verwenden, also beispielsweise
\documentclass[pdftex,]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\begin{document}
$1 \times 2 \times \qty[product-units=power]{3}{\mm}$
\end{document}\end{document}
Übrigens ist Option `pdftex`, soweit mir bekannt, grundsätzlich überflüssig. KOMA-Script und auch andere Pakete erkennen die Verwendung von `pdflatex` selbst. Dagegen kann es sinnvoll sein, Option `ngerman` nicht nur beim Laden von `babel` anzugeben, sondern direkt bei `\documentclass`. Dann bekommen andere Pakete, die diese Option kennen, sie ebenfalls mit. Außerdem könnte es für Deutsch sinnvoll sein, `siunitx` mit Option `locale=DE` zu laden bzw. diese Option per `\sisetup` zu setzen. In Abschnitt 9.12 der Anleitung ist auch angegeben, wie man `locale` mit der Sprache verknüpfen kann. Für ein einsprachiges Dokument wie hier, bringt eine solche Verknüpfung aber keinen Zusatznutzen.