Es gibt viele Möglichkeiten, die Flächen zu füllen, hier ist eine davon. Ein wesentlicher Punkt ist, dass der Ti*k*Z Parser wesentlich mehr kann als Du anzunehmen scheinst. Damit ist gemeint, dass Du keine komplizierten Ausdrücke wie
\pgfmathparse{((-1)^\k) * 3.14159265359*asin(\a)/180 + \k*3.14159265359}
\let\myresult\pgfmathresult
\pgfmathparse{\myresult}
\let\myresult\pgfmathresult
brauchst, Du kannst die Ausdrücke direkt in die Koordinaten schreiben. Und `pi` ist bereits vordefiniert, Du brauchst Dich nicht mit `3.14159265359` abmühen. Hier ist mein geupdateter Code.
\documentclass[varwidth, margin=2.5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\begin{document}
\def\a{0.5}
\begin{tikzpicture}[x = 1cm, y=1.5cm, % scale=0.45,
font=\footnotesize,
>=latex %Voreinstellung für Pfeilspitzen
]
%
% Funktionen y = sin(x), y = a
% Pm
\draw[] (4,\a) -- (0,\a);
\draw[fill=blue] plot[samples=101, domain={pi/2}:{pi-pi*asin(\a)/180}]
(\x,{sin(\x r)}) -- (pi/2,1/2);
\fill[yellow]
plot[samples=101, domain=0:{pi*asin(\a)/180}]
(\x,{sin(\x r)}) -- (pi/2,1/2) --(pi/2,0);
%plot[samples=101, domain={pi-pi*asin(\a)/180}:pi] (\x,{sin(\x r)});
\draw plot[samples=101, domain=0:pi] (\x,{sin(\x r)});
%Schnittpunkte
\draw[color=red, fill=white] plot[mark=*,mark size=2.75pt,variable=\k,samples
at={0,1}] ({((-1)^\k) *pi*asin(\a)/180 + \k*pi}, {\a} ) ;
% Koordinatensystem
% x-Achse
\draw[->] (0,0) -- (4,0) node[below] {$\delta$};
%Zahlen auf x-Achse
\foreach \x/\xtext in {
0, .5*pi/\frac{\pi}{2}, pi/\pi
}
\draw (\x,2pt) -- (\x,-2pt) node[below] {$\xtext$};
% y-Achse
\draw[->] (0,0) -- (0,1.75) node[left] {$y$};
%Zahlen auf y-Achse
\foreach \y in {0.5,1}
\draw[] (2pt,\y) -- (-2pt,\y) node[left,font=\tiny] {$\y$};
\end{tikzpicture}
\end{document}
[![alt text][1]][1]
[1]: https://texwelt.de/wissen/upfiles/Screen_Shot_2019-02-05_at_7.32.38_AM.png