Your example uses a different coordinate system from Carlos's answer, so the units are different.
The layer in Carlos' example uses a geographic coordinate system so its units are decimal degrees. In his expression, label_x - 2
means 2 decimal degrees west of the label point.
Your layer is in WGS84 (pseudo mercator) so the units are meters. In this case label_x - 2
means 2 meters west of the label point. The difference is so small, the output looks like a straight line.
Figure out how far (in meters) you want the middle point to be from the label point, and use that value instead of 2. For example, this expression would place the middle point 500 meters west of the label point:
CASE
WHEN (label_x IS NOT NULL AND label_y IS NOT NULL) THEN
make_line(centroid($geometry),make_point(label_x - 500,label_y), make_point(label_x ,label_y))
ELSE
NULL
END
label_x - 2
means 2 decimal degrees west of the label point. Since your layer is in WGS84 (pseudo mercator), the units are meters, so 2 means 2 meters. Figure out how far (in meters) you want the middle point to be from the label point, and use that value instead of 2.