The question is, I think, wrong in its assumptions. Non-object-oriented languages frequently permit private access to symbols (variables, functions, …) without the need to resort to "tricks".
The essential feature, supported by many languages, including every assembler I've used and pretty much every higher-level language that supports separate compilation, is the "source file".
In a given source file, symbols can typically be declared as "internal to this file" or "visible outside this file" (as well as "defined in some other file but used here"). In a decent system, IMO, the default is "internal", since then you have to consciously think about what is not private.
So, yes, we have "private". It's either implicit, or else it's spelled something like "internal" (or .INTRN, etc.)
There were also programming systems that did not support programs split into multiple files; typically early systems. Algol 60 was an example, though implementation-specific extensions sometimes existed. These controlled symbol visibility through lexical scope: the nested block structure helped. Sometimes it was technically necessary to give symbols wider visibility than you'd like, but then, in a one-file program, the author is not trying to access things that he intends that he does not access.
This doesn't answer the question, which I interpret as "is there at least one system that does not allow control of symbol visibility?".
So, yes, there is. It cannot really be otherwise. There must be at least one language that does not have this feature that is really essential to large programming.
One obvious candidate presents itself: BASIC.
The original Dartmouth BASIC had an undifferentiated symbol space. Every symbol (which were all one or two characters) was available throughout the program. There was not even any lexical division into "routines" -- a subroutine call was just a GOSUB to any line number you wanted; like a GOTO but with an address "saved" in case you ever executed a RETURN.
(No slight on BASIC's inventors - it was designed as a Beginner's language)
So that's my answer: BASIC.