As you said, 'lay_tab' is a list, not a string. wcmatch accepts a string as an argument. You would need to iterate through every item in the list. This should do it (untested).
(defun c:request ()
(if
(vl-some
(function
(lambda (a)
(wcmatch a "*Floor*")
)
)
(layoutlist)
)
(alert "Layout is present")
(alert "Layout is not present")
)
)