To my knowledge, there isn't explicit documentation on how null slots in an array should be interpreted. SQL uses Kleene logic, wherein a null is explicitly an unknown rather than a special value. This yields for example `(null AND false) -> false`, since `(x AND false) -> false` for all possible values of x. This is also the behavior of Gandiva's boolean expressions.
By contrast the boolean kernels implement something closer to the behavior of NaN: `(null AND false) -> null`. I think this is simply an error in the boolean kernels but in any case I think explicit documentation should be added to prevent future confusion. https://issues.apache.org/jira/browse/ARROW-6386