There is an explanation for the algorithm for Automatic Differentiation on the MathWorks Website.
Their example equation is: $$f(x) = x_1 \exp\left(-\frac{1}{2}(x_1^2 + x_2^2)\right)$$
Their computational graph looks like this.
They write "the derivative of $f$ with respect to $x_1$ expands to this expression": $$\frac{df}{dx_1} = \frac{du_6}{dx_1} = \frac{\partial u_6}{\partial u_{-1}} + \frac{\partial u_6}{\partial u_5} \frac{\partial u_5}{\partial x_1}$$
With (see computational graph): $u_6 = f$, $u_{-1} = x_1$ and $u_5 = \exp\left(-\frac{1}{2}(x_1^2 + x_2^2)\right)$.
My question: Why is there a $+$ ? Are they applying the product rule? But shouldn't the product rule result in: $$\frac{df}{dx_1} = u_5 + x_1 \frac{\partial u_5}{\partial x_1}\;?$$
You're right. The $+$ results from the product rule, and both your formulas for $\frac{d f}{d x_1}$ are equivalent. In the article they use the chain rule and the product rule simultaneously.
From the computational graph (single assignment code) we have $$f = u_6 = u_5 u_{-1},$$ so we interpret $u_6$ as a function of $u_5$ and $u_{-1}$. Then for the derivative we have $$\frac{d f}{d x_1} = \frac{d u_6}{d x_1} = \underbrace{\frac{\partial u_6}{\partial u_{-1}}}_{=u_5} \underbrace{\frac{d u_{-1}}{d x_1}}_{=1} + \underbrace{\frac{\partial u_6}{\partial u_{5}}}_{=u_{-1}=x_1}\frac{d u_{5}}{d x_1} = u_5 + x_1\frac{d u_5}{d x_1},$$ which is your result. The authors of the MathWorks article did not replace the partial derivatives $\frac{\partial u_6}{\partial u_{-1}}$ and $\frac{\partial u_6}{\partial u_5}$ with their representation.