Dass das von der Nummerierung her kritisch sein kann, hat @Clemens in seinem Kommentar ja bereits erwähnt. Wenn man es trotzdem haben will, kann man das mit einer Bedingung in der Ausgabe der Nummer durchaus erreichen:
\documentclass[12pt,a4paper,open=right,twoside,bcor=50mm,numbers=noenddot]{amsbook}
\documentclass[12pt,a4paper,open=right,twoside,BCOR=50mm,numbers=noenddot]{amsbook}
\usepackage{selinput}
\SelectInputMappings{
adieresis={ä},
germandbls={ß},
}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{satz}[theorem]{Satz}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{corollary}[theorem]{Korollar}
\newenvironment{beweis}{\begin{proof}[Beweis]}{\end{proof}}
\newenvironment{bemerkung}{\begin{proof}[Bemerkung]}{\end{proof}}
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Beispiel}
\newtheorem{beispiel}[theorem]{Beispiel}
\newtheorem{beispiele}[theorem]{Beispiele}
\newtheorem{xca}[theorem]{\"Ubung}
\renewcommand\thetheorem{\thechapter.%
\ifnum\value{section}>0 \thesection.\fi% Verwende die section-Nummer nur,
% wenn sie größer als 0 ist.
\arabic{theorem}}
\begin{document}
\chapter{ein kapitel}
\begin{definition}
dafjl
\end{definition}
\section{jslafdk}
\begin{satz}
dsjfkl
\end{satz}
\end{document}
Das verwendete `\ifnum` ist ein TeX Primitiv zum Vergleich von Zahlen. Es wird beispielsweise in [TeX by Topic](http://www.ctan.org/pkg/texbytopic) erklärt. Man könnte ähnliches auch mit [`etoolbox`](http://www.ctan.org/pkg/etoolbox) oder [`ifthen`](http://www.ctan.org/pkg/ifthen) und in diesen Paketen erklärten Vergleichsoperationen erreichen.
BTW: »TeX by Topic« gab bzw. gibt es dieses Jahr für alle Mitglieder von [DANTE e.V.](http://www.dante.de) bzw. alle, die in diesem Jahr noch Mitglied werden, als Jubiläumsgeschenk in gebundener Ausgabe.