You need to add more rows to the table or change the query.
MySQl has a 50% threshold on the Match Against construct meaning that if your query matches more than 50% of the rows in the table it does not consider the match relevant so it does not return the rows.
So you add more rows without the text you are querying for and you'll get results ...
Or you can use the "In boolean mode" by changing your query to
Code:
SELECT poisonId, poison, latin_name, short_desc, status
FROM tblpoisons
WHERE MATCH (poison,latin_name,short_desc,full_desc)
AGAINST ('%poison%' in boolean mode)