I think this can be refactored as

tasks = get_tasks @task_list || [] 
tasks.keep_if{ |t| t["task"].include? title }.each do |task|
  m.reply "#{m.user.nick}: Info: #{task}" 
end

Because you can totally iterate over an empty array (it just doesn't execute any number of times) and you can totally use a filter method to check for title inclusion.

http://www.ruby-doc.org/core-2.0/Array.html#method-i-keep_if