Look at the text at the top of the 3rd image. It says that the layer does not have a projection and will be using the same one as the project CRS.
Since the data shows up nicely when the project CRS is 4326, it is safe to say that the coordinates are not projected (likely in 4326 but could be another CRS). If you simply define its projection and say it is ...
For proximity searches better use ST_DWithin, as it is highly optimized to use the spatial index:
FROM roads AS r
JOIN accidents AS a
ON ST_DWithin(r.geom, a.geom, <distance>)
WHERE r.roadname = 'A3'
This will find all accidents that are within <distance>¹ of any segment with name A3; ...
Simple experiment show it's really question of projection. If you take coordinate [0, 0] as center of the circle and buffer, they match. If you calculate factor for diameter difference betwee buffer and circle at 45° of latitude, you get approximately 1.41, whch is exactly the value of Mercator projection length factor 1/Math.cos(latitude*Math.PI/180).
This looks like a bug.
In the log file I see:
2019-12-20 17:55:41,351 WARN [org.geoserver.wps.executor] - Failed to retrieve value for input geom
java.lang.IllegalArgumentException: Decoded result is not a org.locationtech.jts.geom.Geometry, got a: org.geotools.gml3.bindings.DelayedSchemaFeatureCollection