If you want only one row from the set of all rows, then the fastest method is simply:
SELECT *
from table1
WHERE Category LIKE "%green%"
LIMIT 1;
This will give you the first row encountered in the data. To a close approximation, this is the first row inserted into the table that matches your criteria. (This is not a guarantee. For instance, deletes could definitely change this.)
This has the advantage of being fast'ish, which is useful because an index will not benefit you on the where clause. In this case, the query does a full table scan but stops at the first match.
The alternative for a truly random row is to use rand():
SELECT *
from table1
WHERE Category LIKE "%green%"
order by rand()
limit 1;
This requires a full table scan that doesn't stop because all matches are needed for the sort. You then have the additional overhead of sorting the subset by rand(). There are some alternatives, if performance really is an issue.