You can start by showing that if $f \colon [a,b] \rightarrow \mathbb{R}$ is a bounded function and $c \in (a,b)$ such that both $f|_{[a,c]}$ and $f|_{[c,b]}$ are Riemann integrable, then $f$ is Riemann integrable and
$$ \int_a^b f(x)\, dx = \int_a^c f(x)\, dx + \int_c^b f(x) \, dx. $$
Then, prove that for any $a < x_0 < b$ and $y_0 \in \mathbb{R}$, the function
$$ f_{x_0,y_0}(x) := \begin{cases} y_0 & x = x_0 \\ 0 & x \neq x_0 \end{cases} $$
is Riemann integrable on $[a,b]$ with integral zero. The argument will be the same argument as for your $f_1$.
Now, choose some $\frac{1}{2} < a_1 < 1$. On $[a_1,1]$, your function $f$ is just $1 - f_{1,1}(x)$ and thus, is Riemann integrable. On $[\frac{1}{2},a_1]$, your function is just $1 - f_{\frac{1}{2},1}$ and thus is also Riemann integrable. By the result above, $f|_{[\frac{1}{2},1]}$ is Riemann integrable. Continuing this way inductively, you can see that $f|_{[\frac{1}{n},1]}$ is Riemann integrable for all $n \in \mathbb{N}$. Alternatively, if you already know that a function with finitely many discontinuities is Riemann integrable, you can skip all of the above.
Finally, using the definition of the Riemann integrable directly, show that if $f \colon [a,b] \rightarrow \mathbb{R}$ is a bounded function such that $f|_{[a + \frac{1}{n},b]}$ is Riemann integrable for all sufficiently large $n$, then $f$ is Riemann integrable and
$$ \int_a^b f(x) \, dx = \lim_{n \to \infty} \int_{a + \frac{1}{n}}^b f(x)\, dx. $$
I studied from Calculus on Manifolds this year, and in this section, I found that his treatment was a little sloppy. First, there is a huge error in the entire section of partitions of unity: in property ($4$) of Theorem $3$-$11$, "... outside of some closed set contained in $U$", the word "closed" should be replaced with "compact". So, property (4) can be rephrased equivalently by requiring that the support of $\varphi$ be a compact subset of $U$, where the support is defined as the topological closure of the set of points where $\varphi$ is non-zero.
\begin{equation}
\text{supp}(\varphi) := \overline{\{ x \in \mathbb{R^n}: \varphi(x)\neq 0\}}.
\end{equation}
Next, to define the extended integral, I think this is a better definition (it's almost the same, but there are a few subtle differences):
Definition/Proposition:
Let $A$ be an open subset of $\mathbb{R^n}$, $\mathcal{O}$ an admissible open cover for $A$, and $\Phi$ be a $\mathcal{C^0}$ partition of unity for $A$ subordinate to $\mathcal{O}$, with compact support. Let $f: A \to \mathbb{R}$ be a locally bounded function (every point has a neighbourhood on which $f$ is bounded) such that $\mathcal{D}_f$, the set of discontinuities of $f$ has measure zero. Then, for every $\varphi \in \Phi$, the integrals
\begin{equation}
\int_{\text{supp}(\varphi)} \varphi \cdot |f| \qquad \text{and} \qquad \int_{\text{supp}(\varphi)} \varphi \cdot f
\end{equation}
exist according to the old definition (the one involving characteristic functions). We define $f$ to be integrable on $A$, in the extended sense if
\begin{equation}
\sum_{\varphi \in \Phi} \int_{\text{supp}(\varphi)} \varphi \cdot |f|
\end{equation}
converges. In this case, we define
\begin{equation}
(\text{extended}) \int_{A} f = \sum_{\varphi \in \Phi} \int_{\text{supp}(\varphi)} \varphi \cdot f
\end{equation}
The two differences are: I only required $\Phi$ to be $\mathcal{C^0}$, not $\mathcal{C^{\infty}}$, and second, I put $\displaystyle \int_{\text{supp}(\varphi)} \varphi \cdot |f|$ rather than $\displaystyle \int_{A} \varphi \cdot |f|$. The reason I made the second change is because the purpose of this definition is to define integration on an open set (which may be unbounded), so writing $\displaystyle \int_{A} \varphi \cdot |f|$ isn't even defined based on all the old definitions. However, this isn't a huge deal, because later on we can show that
\begin{equation}
(\text{extended})\displaystyle \int_{A} \varphi \cdot |f| = (\text{old}) \displaystyle \int_{\text{supp}(\varphi)} \varphi \cdot |f|
\end{equation}
But, from a logical standpoint, we should not use the symbol $\displaystyle \int_A \varphi \cdot f$ in a definition where we're trying to define the meaning of integration on $A$
(note that we have to use another partition of unity $\Psi$ to make sense of the LHS above).
Proof $\displaystyle \int_{\text{supp}(\varphi)} \varphi \cdot f $ exists according to old definition:
To prove this, we need to show that $\varphi f$ is bounded on a rectangle $R$ containing supp$(\varphi)$, and that $\varphi f \cdot \chi_{\text{supp}(\varphi)}$ is integrable on $R$. To prove boundedness, note that for each $x \in \text{supp}(\varphi)$, since $f$ is locally bounded, there is an open neighbourhood $V_x$ of $x$, and a number $M_x > 0$ such that $|f| \leq M_x$ on $V_x$. The collection of all such $V_x$ forms an open cover of $\text{supp}(\varphi)$, hence by compactness, there is a finite subcover, say by $V_{x_1}, \dots, V_{x_k}$. Then $f$ is bounded by $M = \max \{M_{x_i} \}_{i=1}^k$ on supp($\varphi$). Since $\varphi = 0$ outside $\text{supp}(\varphi)$, it follows that $\varphi \cdot f$ is bounded everywhere (by $M$).
Next, let $R$ be a closed rectangle containing $\text{supp}(\varphi)$. It is easy to verify that
\begin{align}
\varphi f \cdot \chi_{\text{supp}(\varphi)} = \varphi f \tag{*}
\end{align}
(because outside the support, both sides are $0$). Also, since $f$ has a discontinuity set of measure zero, and since $\varphi$ is continuous, it follows that $\varphi f \cdot \chi_{\text{supp}(\varphi)} = \varphi f$ also has a discontinuity set of measure zero; hence $\varphi f \cdot \chi_{\text{supp}(\varphi)}$ is integrable on $R$ according to the very first definition. This proves $\displaystyle \int_{\text{supp}(\varphi)} \varphi \cdot f$
exists according to the old definition. By replacing $f$ with $|f|$ everywhere, you can see that $\displaystyle \int_{\text{supp}(\varphi)} \varphi \cdot |f|$ also exists according to the old definition.
Remarks:
- Notice that because of (*), it doesn't matter whether or not the boundary of $\text{supp}(\varphi)$ has measure zero. $\varphi \cdot f$ is integrable on $\text{supp}(\varphi)$ anyway.
- Notice that by definition, $\text{supp}(\varphi)$ is the closure of a set and hence closed. But this is not good enough, we need it to be compact so that the boundedness argument above works.
- If $V \subset A$ is a bounded open set containing $\text{supp}(\varphi)$, then $\displaystyle \int_V \varphi \cdot f$ exists according to the old definition; this should be immediate since $\displaystyle \int_{\text{supp}(\varphi)} \varphi \cdot f$ has already been shown to exist. In this case,
\begin{equation}
\int_V \varphi \cdot f = \int_{\text{supp}(\varphi)} \varphi \cdot f
\end{equation}
Best Answer
Hint: For any partition $P$ of $A$ the lower sum $L(P,f) = 0$ since any rectangle must contain a point $(x,y)$ where $x$ is irrational and $f(x,y) = 0.$ Next show that the upper sum $U(P,f)$ can be arbitrarily close to zero if the partition is sufficiently fine. Just extend the proof for the one-dimensional case given here.
Aside
This function is peculiar in that it is Riemann integrable on $[0,1]^2$, but for fixed rational $y$, the function $f(\cdot,y)$ is a non-Riemann-integrable Dirichlet function and $\int_0^1 f(x,y) \, dx$ does not exist as a Riemann integral.
In this case, the iterated integral
$$\int_0^1 \left(\int_0^1 f(x,y) \, dx \right) \, dy$$
does not exist.