Depending on how the language is specified, the answer may be yes or no. For instance, consider the following language: $L_S = \{0\}$ if statement $S$ is true, otherwise $L_S =$ the language of the halting problem. Note that if $S$ is true, then $L_S$ is in $P$, otherwise $L_S$ is not in $P$. Now by Goedel's incompleteness theorem, there exists a true statement $S$ that has no proof that it is true. Thus, the corresponding language $L_S$ is in $P$ but has no proof that it is in $P$. You haven't given us enough details about how you propose to represent a language to determine whether your representation is expressive enough to allow defining such a language. So, the answer is unanswerable as stated.
This highlights why it is crucial to explain how you represent the inputs. There is no accepted, standard way to represent a language as a finite bit string -- indeed, the set of all languages is uncountable, so for any representation you might have in mind, there will always exist some languages that cannot be represented. Without this, the question isn't well-posed and can't be answered until you specify this deatil.
As Yuval Filmus explains, the usual understanding of the word "proof" in CS is something that can be verified in polynomial time, so if it has a proof, it has a proof that can be verified in polynomial time.