Is this a correct application of Rice-Shapiro theorem?
The application of the theorem is not correct. Note that $\mathcal{L}$ is a set of acceptable languages, and consider your first point. If you take an acceptable language $L$ that contains a string of length 2014, then it is not necessarily that every superset of $L$ is acceptable.
Regarding the last point, the answer is yes. Given an encoding $\langle L\rangle$ of a finite language $L \in \mathcal{L}$, it is easy to check whether $L$ contains a string of length $2014$. Indeed, we're assuming that the encoding encodes all the words of $L$ in some order, so you can simply traverse the encoding to look for a word of length 2014. Specifically, quoting from the link you attached:

If $L$ is a finite language over $\Sigma$, then you can assume that $\langle L\rangle$ is the unique string over the alphabet $\Sigma \cup \{ \{,•,\}, \epsilon\}$ that contains the strings in $L$ in lexicographic order, separated by dots • and surrounded by braces {}, with $\epsilon$ representing the empty string. For example, if $\Sigma = \{ 0, 1\}$, and $L = \{\epsilon, 0,01,0110,01101001\}$, then $\langle L\rangle =  \{ \epsilon•0•01•0110•01101001\}$.

So given such an encoding as input, you can go over it and check whether there is an infix of legnth 2014 between two consecutive dots •.
Finally, you can simply show that $L$ is acceptable directly by defining a TM that accepts it. Indeed, you can simply simulate the run of $M$ on all strings of length 2014 in parallel, and accepts iff $M$ accepts at least one of them.