For functions just above or below x-axis like $f(x)=x^2$ or $f(x)=|x|$, is there any way to use bisection methods?
Is using something like $x=y+2$ and $f(y+2)=(y+2)^2$ and then solving for $y$ to finally get $x$ a good way?
But how do we find the root for something $f(x)=|x|$?
The problem is, that the bisection method lives from the property \begin{align*}f(a)<0\qquad a<x_0\\ f(b)>0\qquad b>x_0 \end{align*} on a chosen interval $[a,b]$ or vice versa.
The next step of the bisection method is to calculate the midpoint $m_{a,b}=\frac{a+b}{2}$, and evaluate $f(m_{a,b})$.
Using the property above, you can decide if the root is in the interval $[a,m_{a,b}]$ or $[m_{a,b},b]$.
Now, you don't have that property, since your function is only touching the $x$-axis.So we need a different way to decide in which interval the root is located.
1)
We define $g(x):= f(x) - c$, which introduces two roots (possibly more). We can find these by bisection (not easy, as you need $b$ (or $a$) to be located between these two roots). Then we can try to estimate the original root $x_0$. That works well, if $f(x)$ is not "wild" around $x_0$.
2)
We know that if $f$ touches the $x$-axis in $x_0$, then $f'$ crosses the $x$-axis in $x_0$. So we could use bisection on $f'$. On the other hand: If we know $f'$, we would rather use Newton's method.
Edit: Your suggestion to solve for a root of $g(y):=f(y+2)=(y+2)^2$ will not work, since $g$ still has no change of sign.