exists (Accepted solution) will work when input has at least one element in it, that is Some("") but not when it's None. 
exists checks if at least one element(x) applies to function.
eg.
scala> List[String]("apple", "").exists(_.isEmpty)
res21: Boolean = true
//if theres no element then obviously returns false
scala> List[String]().exists(_.isEmpty)
res30: Boolean = false
Same happens with Option.empty, as theres no element in it, 
scala> Option.empty[String].exists(_.isEmpty)
res33: Boolean = false
So forall is what makes sure the the function applies all the elements.
scala> def isEmpty(sOpt: Option[String]) = sOpt.forall(_.trim.isEmpty)
isEmpty: (sOpt: Option[String])Boolean
scala> isEmpty(Some(""))
res10: Boolean = true
scala> isEmpty(Some("non-empty"))
res11: Boolean = false
scala> isEmpty(Option(null))
res12: Boolean = true
The gross way is to filter nonEmpty string, then check option.isEmpty.
scala> def isEmpty(sOpt: Option[String]) = sOpt.filter(_.trim.nonEmpty).isEmpty
isEmpty: (sOpt: Option[String])Boolean
scala> isEmpty(None)
res20: Boolean = true
scala> isEmpty(Some(""))
res21: Boolean = true