Read in the file properly and the GLM code will properly work.
Main thing is define LOCATION to be long enough to actually hold a value that is that long.
You are currently telling SAS that LOCATION should be defined as character variable of length 8.
Also you really should use the DSD option when reading a delimiter file. Otherwise missing values can cause the INPUT statement to read from the wrong field on the line.
Either define the variables with a LENGTH statement before the INPUT statement (in which case you don't need the $ in the INPUT statement since the variable's type will already be set).
Or include an informat in the INPUT statement. But make sure to precede the informat specification with the colon modifier so that it still just reads the next field from the line.
Structure your data step like this:
data hw7;
length house y x1-x4 8 location $20;
infile "...filename..." dsd dlm='09'x truncover firstobs=2;
input house -- location;
run;