Наличие в предложении шести слов означает, что у вас должно быть как минимум пять пробелов, добавление условия simlpe решит вашу проблему:
select *,
case when length(`text`) - length(replace(`text`, ' ', '')) >= 5 then
substring_index(replace(`text`, substring_index(`text`, ' ', 5) , ''), ' ', 2)
else null end Nth
from `tbl_name`
Также я изменил ваш запрос, потому что он не учитывал, что у вас может не быть 6-го пробела (ровно шесть слов).
Демо
Или даже более краткий:
select *,
substring_index(substring_index(`text`, ' ', 5 - (length(`text`) - length(replace(sentence`text` ' ', ''))) - 1), ' ', 1)
from `tbl_name`
Еще одна демонстрация.