Thank you @duane once again.
I wasn't getting dictionaries on physicsQuery and found that, lo and behold, I DID have the monster in the wrong collision mask and my code was way off. However, i added some abstraction layers and sharpened it and my problem is solved. It also gave me another invisible stat to tweak with my monster, how fast it turns. (An exported variable in the header, called turnGap, defaults at 1 second)
func line_of_sight():
### get world space, port size, exclude others objects, x and y limits
var vision = get_world_2d().direct_space_state
var field = get_viewport().size
var exclude = [self, Area2D, StaticBody2D, RigidBody2D]
var head = self.global_position.y
var feet = self.global_position.x
### check for ray intersect in both directions
### first argument origin, second arg terminus, third is array for ignore
var spotting_right = vision.intersect_ray(Vector2(feet,head), Vector2(field.x,head), exclude)
var spotting_left = vision.intersect_ray(Vector2(feet,head), Vector2(0,head), exclude)
### add a gap to turning and change movement if ray intersects
yield(get_tree().create_timer(turnGap),"timeout")
if spotting_right:
print("Spotted!")
walk_right()
if spotting_left:
print("Spotted!")
walk_left()