You did not specify what you wanted returned in the third column if the second column contained neither Agree nor Disagree. I returned a null, but you can easily change that.
The algorithm consistis of adding a "shifted" column so that we are using a replacement on the same row, instead of using an Index column.
let
Source = Excel.CurrentWorkbook(){[Name="Table28"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{
{"Question Category", type text}, {"Answer Category", type text}}),
#"Trimmed Text" = Table.TransformColumns(#"Changed Type",{{"Answer Category", Text.Trim, type text}}),
#"Add Shifted Answer" = Table.FromColumns(
Table.ToColumns(#"Trimmed Text") &
{List.RemoveFirstN(#"Trimmed Text"[Answer Category],1) & {null}},
type table[Question Category=text, Answer Category=text, Shifted Answer=text]),
//Note use of Text.Lower as M-Code is case sensitive
#"Add Result" = Table.AddColumn(#"Add Shifted Answer", "Result", each if Text.Lower([Answer Category])="agree" or Text.Lower([Answer Category])="strongly agree"
then null
else if Text.Lower([Answer Category])="disagree" or Text.Lower([Answer Category])="strongly disagree"
then [Shifted Answer] else null, type nullable text),
#"Removed Columns" = Table.RemoveColumns(#"Add Result",{"Shifted Answer"})
in
#"Removed Columns"
Original Data
Results